Jquery复选框更改事件未激发
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-版本:1.7.2浏览器:IE8
更新:IE控制台错误:
'null' is null or not an object
在上述行
看起来就像您的JSP页面在jQuery之后包含了Prototype库。
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没有连接。检查
我这么认为是因为$-function和无论如何都会返回object,但如果没有jQuery,那么$(str)就会返回null。
我想选择器在IE8中不知怎么坏了,试试[type='checkbox'],无论如何都应该更快
$("input[name='isClubMember'][type='checkbox']").mousedown(function() {
相关文章:
- 如果选中了多个复选框,如何添加事件
- 复选框,然后单击事件处理
- Firefox:点击并更改未附加到文档树中的复选框元素上的事件
- 选中javascript中的属性集时,复选框更改事件未触发
- jQuery复选框(在ul>li下)检查事件
- 如何禁用自定义复选框的单击事件
- 将函数事件绑定到更改函数的复选框/标签
- 当通过选择页面上所有复选框的 jQuery 脚本选中复选框时,如何触发自定义 javascript 事件
- 选中/取消选中某些事件的复选框
- Javascript,表单中任何复选框的事件处理程序
- Jquery复选框更改事件未激发
- jQuery复选框和span共享一个单击事件
- 带有复选框的jQuery更改事件处理程序
- 复选框上的点击捕捉事件
- 使用 JavaScript 更改复选框 OnClick 事件的值
- 空格键触发单击事件复选框
- 更改 Chrome 扩展程序中未触发的事件复选框
- 在AJAX插入的动态创建元素上绑定事件(复选框)
- 单击“事件”复选框将不会触发
- 动态添加点击事件复选框,只适用于第一个复选框JQUERY