Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:分配多个事件处理程序是非法的还是不好的做法?_Javascript_Jquery_Event Handling_Onclick - Fatal编程技术网

Javascript jQuery:分配多个事件处理程序是非法的还是不好的做法?

Javascript jQuery:分配多个事件处理程序是非法的还是不好的做法?,javascript,jquery,event-handling,onclick,Javascript,Jquery,Event Handling,Onclick,可能重复: 我正在使用一个jQuery滑块插件来创建两个按钮。这些按钮具有插件附加的单击事件,因为它们用于控制滑块。我已经创建了自己的mouseover\mouseout事件,独立于插件(与网页内联)来处理动画。我想为单击创建一个按钮(以便按钮更改颜色)。我是否会创建另一个click事件处理程序来覆盖或破坏插件的功能?这是一种不好的做法吗?还有更好的方法吗?不太好,但是如果您可以在一个处理程序中处理所有功能,那么为什么不呢?有两个事件是没有问题的。您可以为一个对象指定任意数量的事件 这是合乎逻

可能重复:


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

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

有两个事件是没有问题的。您可以为一个对象指定任意数量的事件

这是合乎逻辑的,因为您很可能希望根据触发的事件触发不同的函数。99%的jQuery插件在处理具有多个事件的对象时不会有问题。如果你有任何问题,试着问一个问题


唯一不好的是内联js;)

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

与传统方法相比,这是使用
addEventListeners/attachEvent
的优势之一


更多阅读:你应该没有问题。只需使用jQuery的API添加您自己的事件处理程序,就可以进行设置。从
.on()上的jQuery文档中

从jQuery1.4开始,同一事件处理程序可以多次绑定到一个元素


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

如果你不喜欢这样做,那么我会说继续你正在做的事情。只要知道还有更好的选择

这假设您正在添加另一个click事件绑定,而插件已经有了一个绑定


-Mike

在39个州,这是非法的,使用常规的$(“#myButton”).click(函数(e){});是的,这就是我的意思。插件被弄糊涂了。
$('#myButton').on('click', myHandler)