Javascript 在onclick脚本之前调用函数
如何调用脚本?我可以得到onclick作为jQuery函数吗?以便:Javascript 在onclick脚本之前调用函数,javascript,jquery,onclick,handler,Javascript,Jquery,Onclick,Handler,如何调用脚本?我可以得到onclick作为jQuery函数吗?以便: var script = $("a").attr("onclick"); $("a").attr("onclick", ""); $("a").click(function(event) { // call bar() first, then foo(); bar(); // script is a string on Chrome // foo
var script = $("a").attr("onclick");
$("a").attr("onclick", "");
$("a").click(function(event) {
// call bar() first, then foo();
bar();
// script is a string on Chrome
// foo() may use this, so can not globalEval.
});
谢谢。您不能将它们包装到另一个类似这样的函数中吗
onclickFunction.call(this);
var handler=function(){
foo();//1.首先调用foo
bar();//2.第二次调用bar
};
如果必须遵循此方法,请尝试以下方法:
JS:
<a href="#" onclick="handler();">click me </a>
var handler = function() {
foo(); // 1. calling foo first
bar(); // 2. calling bar second
};
您可以将“鼠标向上”或“鼠标向下”事件添加到元素中,此事件将在“单击”事件调用之前调用。这是演示
void函数(){
$(“div”).mousedown(函数(){
console.log(“鼠标按下事件”)
})
$(“div”).mouseup(函数(){
console.log(“鼠标移动事件”)
})
$(“div”)。单击(函数(){
console.log(“单击事件”)
})
}();代码>
单击我
谢谢。如何使用jQuery实现这一点$(“a”)。未定义onclick$attr(“onclick”)返回一个字符串,而不是一个函数。如果foo()不访问this.xxxx,则它会工作。函数foo(id){console.log('foo'+id);}。未定义id。在本例中,“this”是对窗口对象的引用,因此您正在尝试访问window.id。这是对的引用。如果我在没有a.onclick覆盖的情况下单击,它会工作。在jQuery中,它可以调用这样传递参数的函数,例如afunton.call(jQueryObjectAshis)
<a href="#" onclick="handler();">click me </a>
var handler = function() {
foo(); // 1. calling foo first
bar(); // 2. calling bar second
};
(function() {
var a = document.getElementsByTagName('a')[0];
var foo = a.onclick;
function bar() { console.log('bar'); }
a.onclick = function() {
bar();
foo();
};
})();