当您点击它上滑的对象按钮时,我制作了这个名为可移动的jQuery插件,并且应该触发自定义事件,例如 onDone 。
这就是我所做的(编码格式基于jQuery的http://docs.jquery.com/Plugins/Authoring):
init: function(){
return this.each(function(){
$('a', this).click(function(){
$(this).parent().slideUp(function(){
// Somehow trigger the onDone method
})
});
})
},
onDone: function(){
// Default action
},
这就是我在调用插件时所做的事情
$('li').removable({
onDone: function(){
// Overwrite default action
},
})
如何做到这一点?
答案 0 :(得分:0)
如果您只需要在动画结束时调用它,只需将它作为第二个参数传递给slideUp,或者甚至在回调函数中使用$(foo).MyPlugin.onDone()调用它。
否则查看trigger和bind jQuery函数 - 您可以使用您想要的任何字符串用于这些事件类型,以便您可以触发并绑定MyPluginDone事件
编辑:基于评论,你想要更简单的东西 -
正如您在引用的文章中所述,为选项提供可覆盖默认值的最佳方法是让您的插件接受options
对象,然后获取组合默认值+覆盖:
var combinedOpts = $.extend({},defaults,overrides);
并从中获取所有值......
答案 1 :(得分:0)
试试这个。
(function($){
jQuery.fn.extend({
removable: function(options) {
var defaults = {
onDone: function(){alert('default action');}
};
var options = $.extend(defaults, options);
return this.each(function() {
$('a', this).click(function(){
$(this).parent().slideUp(function(){
options.onDone.call();
});
});
});
}
});
})(jQuery);
$('li').removable({
onDone: function(){
alert('Overwrite default action');
},
})