我在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()时,不评估括号内的代码,而是单击时进行评估。

10-08 04:44