【问题标题】:jQuery .on with multiple events, multiple handlers and applying to new elements带有多个事件、多个处理程序并应用于新元素的 jQuery .on
【发布时间】:2014-06-11 23:59:31
【问题描述】:

我有一个动态删除/添加项目的列表。

$('#myul').on('mouseenter', 'li', function() {
    //do something
});

但我想要多个事件,每个事件的处理方式不同

$('#myul').on({
    mouseenter: function() {
        //do something
    },
    mouseleave: function() {
        //do something else
    }
});

我不能定位 $('.myul li') 因为这不会影响新的列表项。我尝试在 function() 之前粘贴“li”,但 jQuery 不喜欢这样。我也试过 .hover 但它有同样的问题(不适用于新的列表项。)

有什么方法可以做到这一点,而不需要为每个事件+处理程序提供不同的功能?

【问题讨论】:

  • 查看文档中的Direct and Delegated Events。
  • 我做到了!我的第一个示例与他们的第一个示例完全相同,只是选择器/事件不同

标签: jquery events handler


【解决方案1】:

你把它放在事件处理程序之后:

$('#myul').on({
  mouseenter:function(){...},
  mouseleave:function(){...}
} ,'li');

【讨论】:

  • 这正是我想要的!非常感谢 :D 你知道 API 中是否有一个页面吗?我在 .on 中的左大括号之前尝试过,但我没想到在结束大括号之前尝试
  • Idk 如果它在文档中...只知道参数顺序:on([events], [selectors], [handlers]) 然后知道您可以通过使用对象将处理程序“添加”到事件中...所以选择器会还是去追吧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-15
  • 2012-01-26
  • 2013-01-01
相关资源
最近更新 更多