Greg, A couple of things:
a.) What versions are you seeing this in? Emulator only? b.) jQuery (in general) is pretty slow on mobile devices. jQuery Mobile has come a long way (in the almost 3 years since the project started): http://jquerymobile.com/ c.) Have you tried not walking the whole DOM and just directly adding to a couple of nodes? d.) Binding mouseup/down might be problematic with jQuery (due to multitouch, trackball, etc). John On Jan 29, 10:28 pm, Greg Donald <gdon...@gmail.com> wrote: > I'm working up some new code that uses Javascript binding, described here: > > http://developer.android.com/guide/webapps/webview.html#BindingJavaSc... > > 1) Is there any way to speed it up? There's about a 2-3 second delay > before a click executes my Javascript clickContact() function in my > activity. I'm attaching to my <tr> with jQuery, like this: > > $.each($('tr[class=contact]'), function(i, obj) { > $(obj).click(function() { > Android.clickContact($(obj).attr('id')); > }); > > }); > > I tried attached to my <a> tags, but that's just as slow. > > My Android code: > > public class ContactsJS > { > private final Contacts con; > private final Context c; > > public ContactsJS( final Contacts contacts, final Context context ) > { > con = contacts; > c = context; > } > > public void clickContact( final String contact_id ) > { > con.clickContact( contact_id ); > } > > } > > WebView contacts = (WebView) findViewById( R.id.contacts ); > contacts.addJavascriptInterface( new ContactsJS( this, this ), "Android" ); > > It works, but it's really slow. > > 2) How can I get WebKit to provide some sort of click feedback? Since > I have problem #1, described above, I really need to provide some > click/tap feedback. My jQuery code below works great in Chrome and > Firefox, highlights red like expected, but in the Android browser it > doesn't do anything. I had some debug code in there, mousedown and > mouseup never fire. > > $.each($('a[class=click]'), function(i, obj) { > $(obj).mousedown(function() { > $(obj).parent().css("background-color", '#f00'); > }).mouseup(function() { > $(obj).parent().css("background-color", 'transparent'); > }); > > }); > > I also tried the other mouse events described here: > > http://api.jquery.com/category/events/mouse-events/ > > And I tried attaching to the <tr>s and <td>s instead of my <a>s, can't > get anything to fire in the Android browser. > > How can I provide some click feedback for my slow Javascript binding? > > Thanks, > > -- > Greg Donald -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en