1

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

4

1 回答 1

1

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

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

于 2012-05-08T12:01:54.097 回答