隐藏子节点jQuery时触发.hide()事件的附加函数

时间:2012-05-08 11:31:54

标签: jquery html tabs hide decorator

我修改了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/

1 个答案:

答案 0 :(得分:1)

这是你要找的?我在触发“tabMe”隐藏事件时避免事件传播,但在隐藏大div时允许它。

http://jsfiddle.net/LQg7W/294/