代码之家  ›  专栏  ›  技术社区  ›  Keith Rousseau

带有jquery委托的复杂选择器

  •  0
  • Keith Rousseau  · 技术社区  · 15 年前

    对于jquery 1.4.2中可与委托一起使用的选择器的复杂性是否有限制?

    这对我很有用:

       $('.activeTabsList').delegate('.activeTabsListItem', 'click', 
    function() { 
       alert('here'); 
    });
    

    这不起作用:

        $('.activeTabsList').delegate('.activeTabsListItem:not(.selected)', 'click', 
    function() { 
       alert('here'); 
    });
    

    正如您可能假定的那样,一次只有一个项目具有选定的类。当我单击其他选项卡时,我的委托处理程序仍然不会被激发。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Nick Craver    15 年前

    你的代码有效, you can see a demo here . 确保您的选择器与您认为的匹配,这很可能是问题所在… .delegate() 它自己处理这个案件。

    通常情况下,这是由于这样的事情,过度分配 selected 班级:

    $(".activeTabsListItem").click(function() {
      $(".activeTabsListItem").addClass("selected"); //should have been $(this)
    });
    
    推荐文章