我在Karl Swedberg's blog上阅读了有关绑定和解除绑定事件的出色文章(因为我是使用jQuery的js初学者),我对这部分代码(为简洁起见而简化)完全感到困惑:
function addItemUnbind() {
$Add a button but it won't have it's event added;
addItemUnbind();
});
为什么通过将相同的函数放入自身而不能一直执行到无限循环中呢?但是,它用于将事件重新绑定到元素...!?
最佳答案
因为该调用在内部函数内。
例如。他在addItemUnbind()中做了一些事情,其中之一是将函数绑定到按钮单击上。
然后声明此功能,例如在addItemUnbind()中有:
.bind('click', function() {
var $newLi = $('<li class="special">special and new <button>I am new</button></li>');
$(this).parent().after($newLi);
addItemUnbind();
}
调用addItemUnbind()时,不评估括号内的代码,而是单击时进行评估。