jquery chaining通用回调函数
问题描述:
很多时候,我遇到过我想执行jQuery函数或初始化jQuery插件(如jQuery数据表)并希望在函数完成后执行代码的情况。 jQuery函数(如隐藏或淡入淡出或其他转换函数)采用可选的回调参数来完成此操作。然而,还有其他的jQuery函数只是返回'this'对象以允许链接。我想知道是否有一种方法使用链接或其他方法来执行某种通用函数,该函数会在我调用的任何jQuery函数完成后接受回调。jquery chaining通用回调函数
喜欢的东西:
$("#element").datatable().executeCallback(myCallbackFunction);
答
这不是非常健壮,但它做你想要的通用回调。
$.fn.executeCallback = function(fn)
{
window[fn]();
}
答
你只需要一个插件,它需要一个函数的参数,它适用于一切由对象相匹配,并返回对象本身。一个简单的可链接 “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);