$("button").click(function() { // this is already existing
if ($("span").length) {
alert("ok");
}
});
var clicks = $("button").data("events").click.slice();
$("button")
.unbind("click")
.click(function() { // this is the new one which should be prepended
$("body").append($("<span>"));
});
$.each(clicks, function(i, v) {
$("button").click(v);
});
7条答案
按热度按时间goqiplq21#
如果你不害怕弄乱jQuery的内脏:
字符串
现场观看:http://jsfiddle.net/Tomalak/JtY7H/1/
请注意,必须已经有一个
currentHandler
,否则该函数将不做任何事情。bgtovc5b2#
我在这里写了一个简短的example:
字符串
k7fdbhmy3#
我不认为有一种方法可以在现有的onclick事件上预挂一个函数调用,但是你可以尝试这样做:
字符串
希望能帮上忙。
elcex8rz4#
你可以在单个事件上添加函数,但我尽量避免在onclick事件上添加两个函数。
1.在现有函数中添加新代码。
2.从现有函数添加对新函数的调用。
hgtggwj05#
这似乎在1.9.1到3.1.4中都可以工作。有关1.9.1之前的版本,请参阅Tomalak's awesome answer。
个字符
这是一个粗略的版本
型
wd2eg0qa6#
使用JQuery 3.3.1测试(但可能适用于1.9.1及更高版本)。1.9.1之前的版本请参阅Tomalak's answer。
我公司的一个项目有一个问题(现已修复),我注意到:
删除和/或更改所述全局处理程序在当时不是一个选项。
jQuery按照注册的顺序调用侦听器/处理程序,这意味着:
解决方案
注意,我使用的是Type-script,但如果需要,您可以强制转换为JavaScript(只需删除类型和
declare global
部分?)。首先,在某个地方定义,可能是
plugins.ts
文件,帮助程序和/或JQuery插件,比如:字符串
用法
最后,在需要时导入并使用上述内容。
例如,OP可以像这样使用它:
型
但我用它是这样的:
型
注意,我的网站从CDN获取JQuery,我在我的web-pack配置中有这样的内容:
型
uqzxnwby7#
如果你像这样绑定事件
字符串
你可以这样修改它:
型