我正在尝试提供我的插件回调功能,并且我希望它以某种传统的方式运行:
myPlugin({options}, function() {
/* code to execute */
});
要么
myPlugin({options}, anotherFunction());
如何在代码中处理该参数?它被视为一个完整的实体吗?我很确定我知道将执行代码放在哪里,但是如何获取执行代码?我似乎找不到关于该主题的大量文献。
我正在尝试提供我的插件回调功能,并且我希望它以某种传统的方式运行:
myPlugin({options}, function() {
/* code to execute */
});
要么
myPlugin({options}, anotherFunction());
如何在代码中处理该参数?它被视为一个完整的实体吗?我很确定我知道将执行代码放在哪里,但是如何获取执行代码?我似乎找不到关于该主题的大量文献。
Answers:
只需在插件中执行回调:
$.fn.myPlugin = function(options, callback) {
if (typeof callback == 'function') { // make sure the callback is a function
callback.call(this); // brings the scope to the callback
}
};
您还可以在options对象中具有回调:
$.fn.myPlugin = function() {
// extend the options from pre-defined values:
var options = $.extend({
callback: function() {}
}, arguments[0] || {});
// call the callback and apply the scope:
options.callback.call(this);
};
像这样使用它:
$('.elem').myPlugin({
callback: function() {
// some action
}
});
$('.elem').myPlugin({ callback: function (param) { // some action } });
options.callback.call(this, param);
animateBefore
和animateAfter
。请告诉我如何使用您的解决方案?
我认为这可能对您有帮助
// Create closure.
(function( $ ) {
// This is the easiest way to have default options.
var settings = $.extend({
// These are the defaults.
onready: function(){},
//Rest of the Settings goes here...
}, options );
// Plugin definition.
$.fn.hilight = function( options ) {
//Here's the Callback
settings.onready.call(this);
//Your plugin code goes Here
};
// End of closure.
})( jQuery );
我分享了一篇有关创建自己的jQuery插件的文章。我认为您应该检查一下 http://mycodingtricks.com/jquery/how-to-create-your-own-jquery-plugin/
()