无法将dblclick绑定到具有disabled属性的checkbox元素

时间:2010-10-14 14:50:09

标签: jquery checkbox

我有一个复选框:

 <td class="checkbox">
      <input type="checkbox" 
             value="100" 
             id="chkbox_100" 
             name="chkbox[]" 
             class="chkbox_selector" 
             disabled="">
 </td>

我有一些jQuery:

 $(':checkbox').each(function(){
      $(this).dblclick(function(e){
           $(this).removeAttr("disabled");
      });
 });

我的预期行为是,当我双击该框时,已禁用的属性 BUT 已删除。

如果我加载的复选框没有禁用&amp;用$(this).removeAttr("disabled");替换alert('here');我得到了预期的功能。

如果我运行 naked $(this).removeAttr("disabled");页面上的复选框加载没有禁用属性(并且,有趣的是也能够发出“HERE”警报)。

那么,是什么阻止了jQuery将双击事件绑定到禁用的复选框?有没有一种简单的方法来解决这个问题?

2 个答案:

答案 0 :(得分:1)

没有什么能阻止jQuery绑定事件。它被禁用会导致事件处理程序无法触发。

如果您分配处理程序,然后删除disabled属性,处理程序仍然有效。

 $(':checkbox').dblclick(function(e){
     alert('here');
 });

 $(':checkbox').removeAttr("disabled");

答案 1 :(得分:1)

解决方案是将input放在<span>内并将事件绑定到<span>