-
Notifications
You must be signed in to change notification settings - Fork 2.4k
.live() and checkbox labels #2383
Comments
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. |
hi 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 |
Can one of you give this a look? Thanks! |
@uGoMobi Yah we simply don't trigger the event on the label. This should be a fairly simple fix but should be tested. https://github.com/jquery/jquery-mobile/blob/master/js/jquery.mobile.forms.checkboxradio.js#L97 just need to trigger on the label. |
Update: 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: 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 |
<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/
The text was updated successfully, but these errors were encountered: