2010-03-10 90 views
2

我的代码有什么问题。当我点击复选框时,什么也没有发生检测复选框已经点击JQuery?

$(document).ready(function(){ 
    $('input:checkbox[name=drawingNo]').click(function(){alert('I am here');});    
}); 
... 
<body> 
    <form> 
     <input type="checkbox" name="drawingNo" value="1"> 1 <br> 
     <input type="checkbox" name="drawingNo" value="2"> 2 <br> 
     <input type="checkbox" name="drawingNo" value="3"> 3 <br> 
     <input type="checkbox" name="drawingNo" value="4"> 4 <br> 
    </form> 
</body> 

编辑:上面的代码工作正常。发生在我身上的是,标签<input type="checkbox">由其他脚本生成,所以当document.ready()启动时,它不能将单击事件注册到复选框,因为这些复选框还没有真正存在。所以要修复它:将.click()更改为.live('click', function(){...})

回答

4

你的选择是错的..

下面是最好的格式

$(document).ready(function(){ 
$("input[name='drawingNo']").live('click', function(){ 
alert('I am here'); 
});    
}); 
+0

这正是我在编辑过的文章中所做的。 tyvm :) – 2010-03-11 02:26:27

+0

检查选择器格式化的方式“$(”input [name ='drawingNo']“)”并添加了现场活动 – Joberror 2010-03-11 10:30:14

1

它适用于IE,FF和Chrome浏览器。

0

尝试删除 ':复选框',这样它看起来像:

$( '输入[名称= drawingNo]')点击(函数(){警报( '我在这里');});

还好吗?

+0

刚刚更新了我的帖子 – 2010-03-10 23:57:51

1

使用$ .fn.live ...

$('input:checkbox[name=drawingNo]').live('click',function(){ 
    alert('I am here'); 
});
+0

这正是我在编辑的文章中做了什么。 tyvm :) – 2010-03-11 02:26:54