不要在禁用的复选框上触发JQuery

jan*_*neh 0 html javascript jquery

我有一个带复选框的表单.当用户点击标签时,我有自定义的复选框图标被交换.这样可以正常工作,但我也在表单中禁用了复选框,并且当您单击已禁用的复选框时,我不会触发单击事件.我怎么做?

JQuery的:

$('input[type=checkbox] + label').click(function() {
  $(this).toggleClass('checkbox-pressed');
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<input type="checkbox" id="A"><label for="A">Option 1</label>
<input disabled type="checkbox" id="B"><label for="B">Option 2 - don't trigger JQ</label>
Run Code Online (Sandbox Code Playgroud)

tec*_*bar 6

用于:not(:disabled)仅选择未禁用的复选框.

$('input[type=checkbox]:not(:disabled)').click(function() {
    ...
});
Run Code Online (Sandbox Code Playgroud)

文档::not():disabled


你应该宁愿使用.on().否则,它将不适用于disabled最初加载页面后的复选框(例如,由于某些用户操作):

$(document).on('click', 'input[type=checkbox]:not(:disabled)', function() {
    ...
});
Run Code Online (Sandbox Code Playgroud)

  • @techfoobar那是2.x,你不只是在1.7 - > 1.8之类的小版本更新中做类似的事情 (2认同)