3

单击/选中复选框时,我无法获得触发的简单警报。我一直在挠头,想知道为什么我不能让它工作,我知道这将是一件简单的事情......那么,我做错了什么?

<script type="text/javascript">
$('#test1').click(function(){
alert('clicked');
});
</script>

<input type="checkbox" id="test1" value="test1" name="test1" value="-1">test1</input>
4

5 回答 5

8

您不是在等待DOM 就绪。如果你愿意,它会起作用:

<script type="text/javascript">
$(function(){
    $('#test1').click(function(){
        alert('clicked');
    });
});
</script>

<input type="checkbox" id="test1" value="test1" name="test1" value="1" /> test1

小提琴:http: //jsfiddle.net/sanbc/

于 2011-08-22T02:19:41.593 回答
3

您需要将其包装在 document.ready() 中,否则可能会在元素存在之前分配 click 事件。

或者

确保包含 jQuery 库。

或者

确保没有包含其他 javascript 库,它们可能会弄乱 $ 对象。如果是,请将 $ 替换为 jQuery。

试试这些,然后回复我评论

于 2011-08-22T02:20:27.420 回答
1

这对我有用。

示例:http: //jsfiddle.net/jasongennaro/9dSMM/

也许DOM没有准备好有问题?

请记住将其包装在document.ready.

$(document).ready(function() {
   // put all your jQuery goodness in here.
 });

更多在这里

于 2011-08-22T02:21:21.413 回答
1

将您的代码放在一个$(document).ready事件中,这样当您尝试向它注册事件处理程序时,您可以确保该复选框存在。

于 2011-08-22T02:21:22.060 回答
1

只是为了检查显而易见的,我从来没有写过没有这个包装器的任何 Jquery UI 代码:

 $(document).ready(function() {
       //......
     });
于 2011-08-22T02:23:44.120 回答