准备好'之间的区别是什么? ' on'?

时间:2014-09-12 12:00:23

标签: javascript jquery

(i)

$(document).ready(function () {     
 $(".edit-item").on('click', function ()     
  {    
    //something    
  }    
});

(ⅱ)

 $(document).on('click', '.edit-item', function () {        
     //something        
 });

为什么第一个只被调用一次。但第二个被调用两次。

第二个(ii)的技术问题是什么。

有人帮帮我吗?

3 个答案:

答案 0 :(得分:2)

两者都是具有约束力的事件:

  1. 第一个正常的事件绑定。
  2. 第二个是使用委托事件方法的事件绑定。
  3. 了解Event Delegation

      

    委派事件的优点是,它们可以处理来自稍后添加到文档的后代元素的事件。通过选择在附加委托事件处理程序时保证存在的元素,我们可以使用委托事件将click事件绑定到动态创建的元素,并且还避免频繁附加和删除事件处理程序的需要。

答案 1 :(得分:0)

实际上,当浏览器上加载了所有DOM元素时,会触发jquery .ready() .on()是一个为DOM元素分配事件的事件委托在运行时。在 ready()分配事件(即委托)是一种很好的方法。你可以弄清楚样本的更多细节。

答案 2 :(得分:0)

我使用了以下代码,只调用了一次。像Bergi的评论一样,你应该两次打电话给第二个(ii)。

$(document).on('click', '.edit-item', function () {        
     //something        
 });