最近我问了一个问题,如何将命令绑定到.fadeIn()
事件,而不必在每次调用.trigger('fadeIn')
时调用它们。我在this post中得到了一个非常好的解决方案。
但是我尝试对.hide()
事件执行相同的过程,如下所示:
var _old = $.fn.hide;
$.fn.hide = function(){
var self = this;
_old.apply(this,arguments).promise().done(function(){
self.trigger("hide");
});
};
它似乎一般有效,如本jsfiddle所示:http://jsfiddle.net/gEVsX/5/
但是当我将其添加到脚本中时,我从一个看似无关的位置收到错误。它是从这部分剧本中抛出的:
$('#unique_div_id').dialog({
autoOpen: false,
show: "blind",
hide: "explode",
modal: true,
buttons: {
Cancel: function(){
$(this).dialog("close");
}
}
});
只是将div初始化为模态对话框。我假设我收到此错误,因为我搞砸了jQuery隐藏代码。我收到了这个错误:
未捕获的TypeError:无法调用未定义的方法'addClass'
我已经在这个jsfiddle中复制了错误:http://jsfiddle.net/gEVsX/6/
有谁知道如何修复我的.hide()
函数包装器脚本?
非常感谢!
答案 0 :(得分:2)
你违反了hide()
方法的合同,该方法应该是可链接的。
您需要return this;
中的hide()
。