jQuery全局事件监听器
jQuery Global Event Listener
我有两个这样的函数:
function fn1() {
$(".element").append("<div class='trigger'></div>");
}
function fn2() {
$(".element").append("<div class='trigger'></div>");
}
和一个监听器:
$(".trigger").click(function() {
// do some magic with $(this) element
});
问题是,如果点击事件监听器位于fn1和fn2之外,它不会看到何时动态创建的元素(触发器)被点击。
如何使事件侦听器全局侦听?
jsFiddle Demo
使用 on
.trigger
的所有当前和将来的实例$("body").on("click",".trigger",function() {
// do some magic with $(this) element
});
编辑
jsFiddle Demo
回复:你能告诉我如何用on语句创建悬停监听器吗?
悬停在这里确实是一个极端情况。对于流畅的方法,您可以使用$().hover(function(){},function(){})
。然而,这不是使用on
的情况。为了与on一起使用它,你实际上必须使用两个单独的委托 mouseenter
和 mouseleave
$("body").on("mouseenter",".trigger",function() {
// do some magic with $(this) element
});
$("body").on("mouseleave",".trigger",function() {
// do some magic with $(this) element
});
试试这个:
$("body").on("click", ".trigger", function() {
// do some magic with $(this) element
});
相关文章:
- 在下拉式javascript事件监听器中选择时触发事件
- 如何在音频元素上使用React媒体合成事件监听器
- Javascript事件监听器让我很困惑
- javascript的事件监听器将下拉列表转换为输入按钮
- 组合类和事件监听器:`this`关键字
- 将事件监听器添加到画布时出错
- 如何通过javascript触发事件监听器
- 通过事件监听器在circle的文本匹配id上修改circle元素
- 动态添加javascript事件监听器,做一些无法解释的事情
- 事件处理程序&事件监听器彼此独立
- 为什么我在谷歌闭包中编写的事件监听器不起作用
- 如何在JS中使用事件监听器
- 为什么jQuery选择事件监听器会多次触发
- 为什么不'我的手机上没有设备就绪的事件监听器
- 何时在 Cocos2d-js 3.2 中注销事件监听器和定时回调
- javaScript-我们如何将一个事件监听器设置为另一个事件监听器的从属
- 按键监听器事件在firefox中不起作用
- 谷歌地图监听器事件的行为类似于点击,即使它是鼠标悬停
- 事件处理程序和监听器&事件冒泡和事件捕获
- backbone.js:防止在模型改变时触发监听器事件