插入一个JQuery点击处理程序,在已经注册的点击处理程序之前执行
Insert a JQuery click handler that executes before the ones already registered
我想在我的应用程序的所有页面上附加一个点击事件处理程序(按钮,锚,选择),并且该处理程序应该在已经在html中声明的附加处理程序(如onclick="return SomeFunction('a','b');"
)之前运行。
我发现了一个关于stackoverflow前置处理程序的问题,这正是我想要的,问题的链接是:-
Jquery preend click handler
但是,上面的代码不起作用,我怀疑它是否对请求者起作用。我根据自己的要求编写的代码是:-
<input type="button" value="Click 1" onclick="f2();" />
$(document).ready(function() {
$("input[type=button]").each(function() {
// your button
var btn = $(this);
// original click handler
var clickhandler = btn.attr("onclick");
btn.attr("onclick", "return false;");
// new click handler
btn.click(function() {
alert('Prepended Handler');
clickhandler();
});
});
});
function f2() {
alert('Handler declared in HTML');
}
这段代码的输出应该是:一个警告显示"Prepended Handler",然后下一个警告显示"Handler声明在HTML中"。
但是,实际结果是:只有第一个警报出现,第二个警报没有出现。
如果你在这段代码中看到任何问题请告诉我。
如何做到这一点呢?div ?
这会重新安排你的点击处理程序。
$(document).ready(function() {
$("input[type=button]").each(function() {
// your button
var btn = $(this);
var clickhandler = this.onclick;
this.onclick = null;
// new click handler
btn.click(function() {
alert('Prepended Handler');
});
btn.click(clickhandler);
});
});
function f2() {
alert('Handler declared in HTML');
}
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 提示使用服务器端事件处理程序激活JavaScript
- 将事件处理程序绑定到任何可能的事件
- 正在将事件处理程序添加到不存在的类
- 在AJAX回调和呈现PIXIJS之间处理程序流时遇到了问题
- Adobe Edge:动画完成时添加onComplete处理程序
- 是否可以从输入处理程序中确定输入的类型
- 在MVVM视图模型中处理应用程序范围的元素
- 在循环中附加事件处理程序时出现浏览器性能问题
- 在同一个javascript事件处理程序中调用不同的函数
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 检查事件处理程序参数
- 实现延迟的jquery更改事件处理程序
- 如何使用Python/Selenium网络驱动程序处理Angularjs/Javascript下拉列表
- 在 AJAX 完成之前,不要让其他处理程序处理
- 如何使用硒铬驱动程序处理地理位置弹出窗口
- 如何使用硒网络驱动程序处理 onblur 事件
- 是否有一种方法为chrome打包应用程序处理Http BasicAuthentication
- Ajax加载程序处理问题