我常常遇到过我想要执行jQuery函数或初始化jQuery插件(如jQuery数据表)并希望在函数完成后执行代码的情况。 jQuery函数(如hide或fadein或其他转换函数)使用可选的回调参数来完成此操作。然而,还有其他jQuery函数只返回'this'对象以允许链接。我想知道是否有一种方法使用链接或其他方法来执行某种泛型函数,该函数在我调用的任何jQuery函数完成后进行回调。
类似的东西:
$("#element").datatable().executeCallback(myCallbackFunction);
答案 0 :(得分:2)
看一下jquery队列http://api.jquery.com/queue/,这可能对你有帮助。
答案 1 :(得分:2)
你只需要一个带有函数参数的插件,将它应用于对象匹配的所有内容,并返回对象本身。一个简单的可链接“genericCallback”实现:
function makeRed() {
$(this).css("border", "1px solid red");
}
$.fn.genericCallback = function(fn) {
if(!typeof fn === 'function') {
console.log('Function expected, got a ' + typeof fn);
}
return this.each(function() {
fn.apply(this);
});
};
$("div").genericCallback(makeRed);
答案 2 :(得分:0)
这不是很强大,但它可以满足你想要的通用回调。
$.fn.executeCallback = function( fn )
{
window[fn]();
}