我有类似的东西:
function init(){
$('.btn').click(function(){
//do something;
}
}
当通过 ajax 添加新内容时,我正在调用init()
,以便单击事件适用于新按钮。但是当我单击它一次时,它会捕获几次单击(与我调用的次数一样多init()
)。这是有道理的,但如何避免呢?
jsFiddle 链接:http: //jsfiddle.net/s2ZAz/8/
解决方案:
* 使用 $.delegate() - http://api.jquery.com/delegate/
* 使用 $.live() - http://api.jquery.com/live/
不太受欢迎,但仍然是解决方案:
* 使用 $.off() - http://api.jquery.com/off/或 $.unbind() - http://api.jquery.com/unbind/