可能的重复项:
jQuery:同一事件的多个处理程序
我正在使用一个创建两个按钮的jQuery滑块插件。 这些按钮在用于控制滑块时具有插件附加的单击事件。 我已经创建了自己的独立于插件(与网页内联)的鼠标悬停\mouseout事件来处理动画。 我也想创建一个用于单击(以便按钮改变颜色)。 我会创建另一个点击事件处理程序覆盖或破坏插件的功能吗? 这是不好的做法吗,有没有更好的方法?
有两个事件是没有问题的。您可以根据需要为对象分配任意数量的事件。
这是合乎逻辑的,因为您很可能希望根据触发的事件触发不同的函数。每个jQuery插件的99%在处理具有多个事件的对象时都没有问题。尝试一下,如果您有任何问题,请提出问题。
唯一不好的是内联js;)
它不会破坏任何已经绑定的处理程序。jQuery 绑定使用事件注册模型的方式,因此它支持多个事件处理程序。
这是使用addEventListeners/attachEvent
相对于传统方法的优势之一。
更多阅读: https://stackoverflow.com/a/12627478/297641
不是真的,但如果你可以在一个处理程序中处理所有功能,那你为什么不呢?
你应该没有问题。 只需使用 jQuery 的 API 添加您自己的事件处理程序,您就可以完成设置。 来自 .on()
上的 jQuery Docs :
从 jQuery 1.4 开始,同一事件处理程序可以多次绑定到一个元素。
$('#myButton').on('click', myHandler)
在某些情况下,我会说这是不好的做法。在单个元素上创建多个事件处理程序几乎总是可以避免的。如果您足够舒服,您可以随时打开插件的源代码(如果它不是缩小版本)并修改事件处理程序以包含您的修改。
如果你这样做不舒服,那么我会说继续你正在做的事情。只要知道有更好的选择。
这假设您在插件已经有一个点击事件绑定时添加另一个点击事件绑定。
-话筒