我在jQuery Mobile应用程序中有以下jQuery,我在单击li
时选择子复选框。这样可以正常工作,但是当它单击直接框时无法取消选中复选框时,它会破坏复选框本身的默认功能。
如何使用代码定位li
但不复选框?
var page = $.mobile.activePage
page.on('vclick', '.item_boxes_wrapper li:not(.item_checkbox)', function(e) {
var checkbox = $(this).find(':input');
checkbox.prop('checked', checkbox.is(':checked') ? null: 'checked');
});
<ul class="item_boxes_wrapper">
<li class="item_container selected_item">
<img src="http://www.wrestlemaniamainevent.com/Image/984043-64-1.jpg" class="product_image">
<input type="checkbox" checked="checked" value="98404364099" class="item_checkbox" name="items[]">
</li>
</ul>
答案 0 :(得分:3)
您可以使用:
page.on('vclick', '.item_boxes_wrapper li:not(.item_checkbox)', function(e) {
if($(e.target).is(':checkbox')) return; // add this check here
var checkbox = $(this).find(':checkbox'); // or .find('input[type=checkbox]')
checkbox.prop('checked', !checkbox.is(':checked'));
});
PS:似乎不是相关的选择器.item_boxes_wrapper li:not(.item_checkbox)
,我猜你想要'.item_boxes_wrapper li'
。或者也许是.item_boxes_wrapper li:not(:has(.item_checkbox))
???