gpt4 book ai didi

javascript - 您可以绑定(bind) .click() 以便它在 onclick 之前触发吗?

转载 作者:可可西里 更新时间:2023-11-01 01:48:15 26 4
gpt4 key购买 nike

我正在为在 JSF 中构建的应用程序编写 jQuery。 JSF 组件使用大量它们自己的 JS 来完成 JSF 所做的一切,并且它们使用大量的 onclick 属性来处理这一切。

是否有有效/正确的方法将您自己的点击事件绑定(bind)到元素并确保您的事件在默认的 onclick 事件之前触发?似乎默认情况下,在任何内联 onclick 函数调用之后都会触发 jQuery click 函数。

最佳答案

在 jQuery 中,事件严格按照注册顺序触发。

您可以通过遍历整个 DOM,删除那些 onclick 属性,然后注册您自己的处理程序来绕过任何内联 DOM0 onclick 样式处理程序,然后 调用最初定义的函数。

类似于:

$('[onclick]').each(function() {
var handler = $(this).prop('onclick');
$(this).removeProp('onclick');
$(this).click(handler);
});

参见 http://jsfiddle.net/alnitak/2SCTK/

因此,首先使用 jQuery 注册您自己的处理程序,然后调用上面的代码删除原始内联 onclick 处理程序并重新注册它们,就好像 jQuery 添加了它们一样。

EDIT 代码简化为仅使用原始函数 - jQuery 将确保在正确的上下文中调用该函数。以前将上下文显式设置为 window 的代码不正确。

关于javascript - 您可以绑定(bind) .click() 以便它在 onclick 之前触发吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6694434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com