当另一个函数以类似于DOM事件的方式完成时,是否有方法来引发函数?当另一个函数被执行时Jquery引发函数
例如(我知道这是不可能的,但...)
$('body').on('myFunction', function(){
alert('My function was called.');
})
当另一个函数以类似于DOM事件的方式完成时,是否有方法来引发函数?当另一个函数被执行时Jquery引发函数
例如(我知道这是不可能的,但...)
$('body').on('myFunction', function(){
alert('My function was called.');
})
没有,绝对没有办法做到这一点,除非你可以更换功能(即有机会获得它的范围)。
如果您有机会获得它变得非常容易,但并不需要任何的jQuery在所有范围:
var origFunc = theFunction;
theFunction = function() {
var args = Array.prototype.slice.call(arguments);
// run before the call
var rv = origFunc.apply(this, args);
// run after the call
return rv;
};
见MDN约传递给函数的arguments
object含参数的信息。不幸的是,使用slice
将其转换为普通数组是不必要的,因为诸如IE9等浏览器无法正确地遵循ES5标准,这需要apply
才能接受任何类似数组的对象。
谢谢!它具有全球范围,你的例子完美地工作:D – imperium2335
不知道这是否完全是你想要的。但我认为你应该试试jquery Deferred
对象。看看这里的jquery文档 - Jquery Deferred Object。
简要概述 -
我编译了这个小提琴作为演示。 - FIDDLE。
希望这会有所帮助。
我没有看到完整的代码,但为什么不在第一个函数的末尾调用第二个函数? –