1

次のような2つのdivを単純に表示する「ライトボックス」のような機能があります。

http://i.imgur.com/3ZhEz.jpg

緑色 (機能すると色が付きません) は、ログイン ボックスを閉じるためにクリックする領域です。

jsFiddle コード付き: http://jsfiddle.net/bhcGv/8/

ログイン ボックスをクリックすると、緑色のボックスをクリックしたと見なされるため、ログイン ボックスは消えます。助言がありますか?

4

3 に答える 3

4

.stopPropagation メソッドが必要です。

ここで更新された jsfiddle: http://jsfiddle.net/bhcGv/10/

于 2012-08-20T13:46:55.467 に答える
1

このコードを追加できます

.find('#centeredBox').click(function(e){
        e.preventDefault();
        e.stopPropagation();
return false;
    });

だからあなたの document.ready 関数は

$(document).ready(function(){
    $("#loginOffBox").click(function(){
        $('#loginOffBox').hide();
          $('#centeredBox').hide();
    }).find('#centeredBox').click(function(e){
        e.preventDefault();
        e.stopPropagation();
return false;
    });
    // other js
});

これにより、中央の div をクリックしたときにイベントが実行されなくなります。

色付きの div から中央の div を取り出すこともできます。その後、イベントのバブルは発生しません。

于 2012-08-20T13:44:40.477 に答える
0

2 つの div の z-index を修正します。バックグラウンド div はポップアップ div よりも小さい z-index を持つ必要があり、両方とも比較的高い値を持つ必要があります。

loginOffBox の z-index を 1000 に、centeredBox の z-index を 1100 にすると、正常に動作するはずです。

于 2012-08-20T13:46:19.660 に答える