2

可能重复:
jQuery:同一事件的多个处理程序

我正在使用创建两个按钮的 jQuery 滑块插件。这些按钮通过插件附加了点击事件,因为它们用于控制滑块。我创建了自己的 mouseover\mouseout 事件,独立于插件(与网页内联)来处理动画。我也想为点击创建一个(以便按钮改变颜色)。我会创建另一个单击事件处理程序覆盖或破坏插件的功能吗?这是不好的做法,有没有更好的方法?

4

5 回答 5

3

有两个事件是没有问题的。您可以根据需要为对象分配任意数量的事件。

这是合乎逻辑的,因为您很可能希望根据触发的事件触发不同的函数。并且 99% 的每个 jQuery 插件在处理具有多个事件的对象时都没有问题。如果您有任何问题,请尝试并提出问题。

唯一不好的是内联js;)

于 2012-10-10T17:49:32.560 回答
3

它不会破坏任何已经绑定的处理程序。jQuery 绑定的方式是使用事件注册模型,因此它支持多个事件处理程序。

addEventListeners/attachEvent这是使用传统方法的优势之一。

更多阅读: https ://stackoverflow.com/a/12627478/297641

于 2012-10-10T17:51:20.640 回答
1

并非如此,但如果您可以在一个处理程序中处理所有功能,那您为什么不呢?

于 2012-10-10T17:49:18.327 回答
1

你应该没有问题。只需使用 jQuery 的 API 添加您自己的事件处理程序,您就可以设置好了。来自 jQuery 文档.on()

从 jQuery 1.4 开始,同一个事件处理程序可以多次绑定到一个元素。

$('#myButton').on('click', myHandler)
于 2012-10-10T17:51:25.600 回答
0

在某些情况下,我会说这是不好的做法。在单个元素上创建多个事件处理程序几乎总是可以避免的。如果您足够舒适,您可以随时打开插件的源代码(如果它不是缩小版本)并修改事件处理程序以包含您的修改。

如果您对此感到不舒服,那么我会说继续您正在做的事情。只知道有更好的选择。

这假设您在插件已经有一个点击事件绑定时添加了另一个点击事件绑定。

-麦克风

于 2012-10-10T17:54:43.790 回答