我创建了一个小的jQuery插件,当用户分别点击按钮.show
和按钮.hide
时,显示并隐藏div。我想传递一个函数作为插件选项来为onhide
做一些特定的处理。但是,onhide
函数执行的次数与show和hide按钮的点击次数相同。jquery插件函数重载执行函数很多次
这是jsfiddle。
当您单击多次显示/隐藏按钮后,警报将显示相同的次数。
我认为它应该只提醒一次隐藏按钮。
$.fn.showhide = function(options){
var popup = this;
defaultOptions = {
onHide : function() { },
onShow : function() { }
};
var Options = $.extend({},defaultOptions, options);
this.each(function() {
$(this).on('click',function(e){
var id = $(this).data('id');
$('#'+id).show();
$('.hide').on('click',function(){
var id = $(this).data('id');
$('#'+id).hide();
if (Options.onHide.call() === false) {
return;
}
});
});
});
}
$('.show').showhide({
onHide :function() {
alert('hide');
}
}
);
这有同样的问题!当您在演出中点击三次时,您必须点击确定按钮三次!试试我的解决方案... – chrisv
你是对的。我更新了我的答案..谢谢! –
这与我的解决方案几乎相同! :P – chrisv