<label> tags do not respond to .live() bindings wether bound on page load or after injecting new objects.
It does work on a desktop, but not on mobile.
Here is the example that won't work on mobile: http://jsfiddle.net/benashby/MkxYh/
run into the exact same problem. Any suggestion to fix this ?
binding the event on the input works well !
Yup, this is what I ended up doing. It's expensive and I am loath to do it, but until I come up with another solution this is what works.
not sure is this fix or not...
try to change from return "false" to "true" for the label "vclick" handler in "mobile.checkboxradio" widget.
I mean 5296 line number in jQuery Mobile Framework 1.1.0 db342b1
This seems to be working, without making any changes. See: http://jsbin.com/uripah/2/
You can bind to the input element (example 1) or the label (example 2). Both work.
For dynamically injected input elements (example 3) it is different though. In that case you can bind to the label, but not the input element itself. To be honest, I have no idea yet why that is.
Note that this fiddle loads an adjusted version of the JQM js file to refresf corners of controlgroup after injecting new item (this change is under review).
uGoMobi, thank you for your answer and useful example
All examples work at desktop browsers, but on device browser (HTC desire Z, android 2.3.3) only example 1 works properly. It may be necessary to use "vclick" instead of "click "
And in previous message I was not enough clear... I need to handle a "vclick" event.
Can one of you give this a look?
I created a JSBin to test with http://jsbin.com/ulohoj/8/
Yah we simply don't trigger the event on the label. This should be a fairly simple fix but should be tested.
just need to trigger on the label.
I'm a jackass. We need to figure out why the return false is in there. That's likely preventing the event from bubbling up to the document level where the live binding will work.
git blame will take you down memory lane:
0a063c6 -> 6414e35 -> 38c1c24
It seems that @scottjehl moved the check/uncheck to touchend/mouseup to fix #753 (checkboxradio widget is too slow in mobile device) and that's when he introduced the return false for click. Later, @jblas replaced it with vclick, but the return false remained.
So, this is another place where we went with vclick in order to speed up responsiveness. It doesn't seem as though it's absolutely necessary to return false to that event.
@gabrielschulhof I looked into this a bit last week and came to the same conclusion but haven't had a chance to thuroughly test to make sure nice with the git blame to find the reason for its being introduced
Checkboxradio: allow vclick event to bubble. Fixes #2383.