0

2 つの DIV があります。

<div id="div1"></div>
<div id="div2"></div>

特殊なケースでは、div2は z-index:999 を取ります。その場合、 div1のクリックをキャッチできません。定義された jquery 関数:

$j = jQuery.noConflict();
$j(function() {
    $j(document).click( function(e) {
        var clicked = $j(e.target);
    })
})

したがって、シナリオは次のとおりです。

  • 同じ z-index を持つ任意の div でクリックが発生した場合に呼び出される $j(document).click 関数

  • $j(document).click 関数は、より大きなz-index を持つ div でクリックが発生し、別のクリックでは呼び出されない場合に呼び出されます

画面全体で行われたすべてのクリックを処理する方法はありますか?

4

1 に答える 1

1

任意の深さの div ですべてのクリックを確実に処理したい場合は、ドキュメントをクリックしているときにマウスが上にあることを検証してから、その div のクリック イベントをトリガーできます。どうですか :

$(document).click(function(e){
    $('div').each(function(){
        if (e.pageX >= $(this).position.left &&
            e.pageX <= $(this).position.left+$(this).width() &&
            e.pageY >= $(this).position.top &&
            e.pageY <= $(this).position.top+$(this).height()
         ){
            $(this).trigger('click');
         }
    });
});

これはやり過ぎの解決策ですが、うまくいくかもしれません..これが助けになることを願っています.

于 2012-07-10T09:52:44.437 に答える