使用.live()方法处理jQuery复选框事件

3

我是一名新手,正在学习jQuery。我有一个复选框,是通过以下jQuery代码动态添加的:

.html("<input type='checkbox' class='checkbox' value='7.5'>");

我希望能够在复选框被点击时调用一个函数。我已经尝试使用以下两种代码变体:

对于 class 复选框:
$(".checkbox").live('click', function() {
    alert('test');
});

或者调用所有复选框:
$(":checkbox").live('click', function() {

    alert('test');
});

这完全不起作用。有什么想法吗? 非常感谢!


你使用的 jQuery 版本是什么? - Alex W
在提问之前,请务必查阅文档 http://api.jquery.com/ - Zachrip
1个回答

9

.live()已经弃用,请使用事件委托语法:

$(document).on('change', 'input[type="checkbox"]', function(e) {
    alert(e);
});

document替换为事件处理程序绑定时存在的最近父元素的选择器。我建议不要使用:checkbox,因为它是非本地选择器,速度比input[type="checkbox"]慢。


好的回答,和我想回答的一样 :) - Zachrip
也许值得一提的是,除了在选择器 "input[type='checkbox']" 上指定输入类型之外,您还可以添加一个类名来进一步缩小目标元素范围:input[type='checkbox'].checkbox - Mevius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接