Jquery复选框更改事件未触发

Sua*_*Nti 2 html javascript checkbox jquery

我试图从过去一小时开始解决这个小问题:

<script type="text/javascript">
$(document).ready(function(){        
    $("input[name='isClubMember']:checkbox").mousedown(function() {
         if (!$(this).is(':checked')) {
            this.checked = confirm("Are you sure?");
            $(this).trigger("change");
         }
    });
 });
</script>
Run Code Online (Sandbox Code Playgroud)

有趣的是,它可以在JSFiddle中运行..但不是在我的jsp页面中. 样品

上面的代码null在这一行给出了错误(在Debug控制台中)

 $("input[name='isClubMember']:checkbox").mousedown(function() {
Run Code Online (Sandbox Code Playgroud)

JQ -Ver:1.7.2浏览器:IE8

更新:IE控制台中出错:

 'null' is null or not an object 
Run Code Online (Sandbox Code Playgroud)

在上面提到的那一行

Fré*_*idi 7

看起来像你的JSP页面包括原型的jQuery后库.

Prototype的$()函数接受一个id,null如果它找不到该元素则返回,这与您正在观察的行为一致.

尝试使用jQuery而不是$代码中的任何地方:

jQuery("input[name='isClubMember']:checkbox").mousedown(function() {
    // ...
});
Run Code Online (Sandbox Code Playgroud)

或者将代码放在一个jQuery$参数中传递对象的闭包中:

(function($) {
    // The rest of your code...
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

或者利用ready处理程序传递相同$参数的事实:

jQuery(document).ready(function($) {
    // The code in your 'ready' handler...
});
Run Code Online (Sandbox Code Playgroud)

您可能还希望在noConflict模式下运行jQuery ,以避免$()在包含顺序发生更改时覆盖Prototype的函数.