我修改了jQuery .hide()函数,如下所示:
/*
*This chunk will help us attach other functions to the hide events
*/
var _old = $.fn.hide;
$.fn.hide = function(){
var self = this;
_old.apply(this,arguments).promise().done(function(){
self.trigger("hide");
});
return this;
};
我这样做了,所以当我将方法附加到hide事件时,我不必使用.trigger('hide')
。我遇到了一个小问题:如果将方法附加到父元素的.hide()
函数,看起来每次隐藏子元素时都会触发方法。请参阅此jsfiddle示例:http://jsfiddle.net/LQg7W/286/。
我希望警报仅在隐藏主div时显示,可以通过单击“隐藏主div”按钮来完成。但是,正如您所看到的,当您切换主div内的选项卡时会显示警报。
有人知道如何保持附加方法(警报弹出)仅在隐藏($('#main_div')
)中指定选择器而不是任何其他元素时触发吗?
非常感谢!
更新:
我对.on('hide'..
函数进行了一些过滤,以确保触发hide()
的ID是我们想要的ID。仍然不是我正在寻找的确切解决方案(即使包装脚本做到这一点),但越来越近了:http://jsfiddle.net/LQg7W/296/