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'..トリガーした ID が必要な ID であることを確認する関数に小さなフィルターを作成しましたhide()。私が探していた正確な解決策ではありませんが(つまり、ラッパースクリプトにそれをさせる)、近づいています:http://jsfiddle.net/LQg7W/296/

4

1 に答える 1

1

これはあなたが探しているものですか?「tabMe」非表示イベントがトリガーされたときはイベントの伝播を回避しますが、大きな div が非表示のときは許可します。

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

于 2012-05-08T12:01:54.097 に答える