繁体   English   中英

jQuery Checkbox更改事件未触发

[英]Jquery Checkbox change event not firing

我正在尝试解决过去一个小时的这个小问题:

<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>

有趣的是,这在JSFiddle ..中有效,但在我的jsp页面中无效。 样品

上面的代码使我在此行出现null错误(在调试控制台中)

 $("input[name='isClubMember']:checkbox").mousedown(function() {

JQ -Ver:1.7.2浏览器:IE8

更新 :IE控制台中的错误:

 'null' is null or not an object 

在上述行

看来您的JSP页面在jQuery之后包含Prototype库。

原型的$()函数带有一个id,如果找不到该元素,则返回null ,这与您观察到的行为一致。

尝试在代码中的所有位置使用jQuery而不是$

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

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

(function($) {
    // The rest of your code...
})(jQuery);

或采取的事实,即一个ready处理程序通过相同的$参数:

jQuery(document).ready(function($) {
    // The code in your 'ready' handler...
});

您可能还想在noConflict模式下运行jQuery,以避免在包含顺序更改时重写Prototype的$()函数。

我建议,您可以在复选框中添加一个类名,然后通过一个类名找到该复选框! 在这种情况下,似乎多数民众赞成在ie8的问题!

我认为您的页面中jQuery未连接。 校验。

我认为是因为$-无论如何都会返回对象,但是如果没有jQuery,则$(str)返回null。

我猜选择器在IE8中坏了,尝试[type ='checkbox'],无论如何应该更快

    $("input[name='isClubMember'][type='checkbox']").mousedown(function() {

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM