在jquery 1.10中使用on函数而不是live

在jquery 1.10中使用on函数而不是live,jquery,Jquery,我写了一个代码。我的元素当前不存在。代码是 jQuery('a.feedSearchClear').on('click',function(evt){ console.log('coming here'); var intId = window.setInterval(function(){ if(jQuery('#feedSortDropDownElement').parent().find('ul').find('a').length > 0) { window

我写了一个代码。我的元素当前不存在。代码是

jQuery('a.feedSearchClear').on('click',function(evt){
  console.log('coming here');
  var intId = window.setInterval(function(){
   if(jQuery('#feedSortDropDownElement').parent().find('ul').find('a').length > 0) 
{     window.clearInterval(intId);
      jQuery(".feedSortMenuContainer").prepend(menu_html);
     reRenderMenu();

}
},1000);

});
当我点击按钮时,它就会出现。它未显示控制台日志意味着未调用方法。有人能解释一下为什么???

将事件委托给动态添加元素的父元素或委托给
文档

jQuery(document).on('click', 'a.feedSearchClear',function(evt){
  console.log('coming here');
  var intId = window.setInterval(function(){
    if(jQuery('#feedSortDropDownElement').parent().find('ul').find('a').length > 0) 
    {  
       window.clearInterval(intId);
      jQuery(".feedSortMenuContainer").prepend(menu_html);
       reRenderMenu();

     }
   ,1000);    
});
委派事件的优点是,它们可以从中处理事件 以后添加到文档中的子元素。通过 选择一个元素,该元素保证在 已附加委派事件处理程序,您可以使用委派事件 避免频繁附加和删除事件处理程序


发生的情况是,您正在将绑定直接应用于选定的元素:

$("a.example").on("click", do_stuff);
在上面,您是说,“jQuery,在页面上找到所有
a
标记,并使用
example
类,然后应用此
单击
绑定”。您案例中的问题是页面上还没有这些元素

您可以通过将绑定放在祖先节点(层次结构上的任何节点)上并让它为您处理事件来修复此问题。最简单的方法是使用
body
标记,如下所示:

$("body").on("click", "a.example", do_stuff);
现在,您要说,“jQuery,任何时候在
主体
标记中单击
类为
示例
标记时,都要执行这些操作”


基本上,您是在告诉body标记代表子节点侦听事件,即使该子节点当时不存在。

阅读此内容。此问题似乎脱离主题,因为官方文档已经回答了它。啊,正确!我会相应地编辑我的帖子!