jQuery中的多个链式.on('click')事件侦听器
Multiple chained .on('click') event listeners in jQuery
我在转盘插件上有几个click
处理程序(此处为GitHub repo)。
当我最初对它进行编码时,我忘记了jQuery链接:
$gallop.on("click", ".advance", function(){ [snip 1] })
$gallop.on("click", ".retreat", function(){ [snip 2] })
$gallop.on("click", ".autoplay", function(){ [snip 3] })
$gallop.on("click", ".picker", function(){ [snip 4] });
它们都在同一个.gallop
元素上,所以我能够通过将它们链接在一起来改进代码:
$gallop
.on("click", ".advance", function(){ [snip 1] })
.on("click", ".retreat", function(){ [snip 2] })
.on("click", ".autoplay", function(){ [snip 3] })
.on("click", ".picker", function(){ [snip 4] });
它们也都在侦听click
事件:只有每个处理程序的选择器不同。有没有办法将多个选择器/处理程序项放在同一个.on()
方法中?像这样的东西?
$gallop
.on("click",
".advance", function(){ [snip 1] },
".retreat", function(){ [snip 2] },
".autoplay", function(){ [snip 3] },
".picker", function(){ [snip 4] });
没有内置的方法可以在一个.on()
调用中指定多对独立的选择器/处理程序。
如果你想为每个不同的选择器提供不同的事件处理功能,那么你的第二个选项可能是最干净的方法
你可以制作一个巨大的事件处理程序,然后根据目标进行分支(但除非你在所有处理程序中有一堆公共代码,否则这可能不是最干净的方法):
$gallop.on("click", ".advance, .retreat, .autoplay, .picker", function(e) {
// look at the class on e.target and decide what to do
})
相关文章:
- Highslide(iframe的侦听器)
- 如何在for循环中添加事件侦听器
- 选项卡侦听器未被来自后台脚本的消息激活
- 未命中服务器发送的事件侦听器
- 如何覆盖原型中的事件侦听器
- 加载侦听器上的函数触发得太早
- 无法将事件侦听器附加到画布
- 如何在d3.js中自定义事件侦听器
- 在es6中,将带有回调的事件侦听器设置为可迭代的
- 事件侦听器未在chrome扩展中的options.js中启动
- IE8更改文本区域上的事件侦听器不工作
- 将事件侦听器添加到文档,而不是签入元素存在,然后添加事件侦听器
- jQuery将侦听器的大小调整为只触发宽度的变化
- javascript删除事件侦听器
- 我应该/如何清除mousemove JQuery事件侦听器
- jQuery中的多个链式.on('click')事件侦听器
- 刷新父窗口中的 jquery .click 侦听器以处理新元素
- Jquery (2.2.0) 单击侦听器在使用 .on() 时单击几下后停止工作,但 .click() 工作正常
- 在初次单击后删除已放置的jquery-click事件侦听器
- “click"侦听器多次执行