我想保留按钮单击功能的参考,做我的事情,然后运行原始的单击功能。
我知道通常我可以在 document.ready 中做这些事情,例如:
var originalOnClick = $("#myBtn").click;
$("#myBtn").click = function() {
// do my staff here, and only then call the original:
originalOnClick();
}
(如有错误请更正此代码!)
但是,我有一个特殊情况。在我的页面 onLoad 函数中,有异步 ajax 调用。所以在 document.ready 上调用的函数实际上是在 ajax 代码完成之前调用的。
调用 click() 或 onclick() 时有没有办法改变点击事件?我的意思是,是否有一个事件在点击事件之前\之后立即被调用?
或者我必须要求用户单击一个(我可以看到此页面已加载)按钮,然后我才能做我的员工?
编辑 1: ajax 代码在包含的脚本中。我无法改变它。
编辑 2:可能的解决方案:隐藏原始按钮,但使用其事件:
HTML:
<div class="object1" style="display: none;" >original button.</div>
<div class="object2">my button.</div>
JS:
function doMyStuff() {
alert(' doMyStuff .');
}
$(document).ready(function(){
$('.object1').click(function(){
alert('original staff. ');
}); // actually, this is just a test code. In my project, I cannot edit this function
$('.object2').click(function() {
doMyStuff();
$('.object1').click();
});
});