我像这样修改了 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;
};
.trigger('hide')
我这样做是为了在将方法附加到隐藏事件时不必使用。.hide()
我遇到了一个小问题:如果您将方法附加到父元素的函数,那么每次隐藏子元素时似乎都会触发这些方法。请参阅此 jsfiddle 示例:http: //jsfiddle.net/LQg7W/286/。
我希望警报仅在我们隐藏主 div 时显示,这可以通过单击“隐藏主 div”按钮来完成。但是,如您所见,当您切换主 div 内的选项卡时会显示警报。
有谁知道我如何保持附加的方法(弹出警报)仅在隐藏($('#main_div')
)中的指定选择器而不是任何其他元素时触发?
非常感谢!
更新:
我对函数做了一个小过滤,以.on('hide'..
确保触发的 IDhide()
是我们想要的。仍然不是我正在寻找的确切解决方案(即让包装脚本做到这一点),但越来越接近:http: //jsfiddle.net/LQg7W/296/