5

これが私がやろうとしていることです:

絶対位置に配置され、幅と高さが100%で、ドキュメント内の他のすべての要素よりも高いz-indexを持つグローバルな「ジェスチャコンテナ」を作成します。

これが私の問題です。このコンテナを作成すると、絶対に配置された要素が、その下にあるすべてのものにバインドされているクリックイベントをブロックしています。

$(document).ready(function() {
    $(document).on('click touchstart', '.block', function() {
        var $this = $(this);

        if(!$this.hasClass("disabled")){
            $this.addClass("disabled")
            $this.openPopUp();
        }
        return false;           
    });
});

.live()と同じように機能するように設定したjQuery 1.7.2からの新しい.on()呼び出しを使用していることに注意してください。

要素がクリックを受け入れないのはなぜですか?私のジェスチャーエリアがそれをブロックしているように見えますが、それを回避する方法はありますか?

4

2 に答える 2

10

解決策1。CSS。を設定pointer-events: none;しますが、これはFirefox、Chrome、Safariでのみ機能します。

解決策2。JavaScript。http://www.vinylfox.com/forwarding-mouse-events-through-layers/

于 2012-05-25T20:32:43.100 に答える
2

私はあなたがそれを無効にすることはできないと思います。基本的にこれがイベントの仕組みです。そのため、画面の中央にダイアログボックスを表示し、そのダイアログボックスの下の要素で同じイベントを発生させずにクリックすることができます。

その上位の要素で同様の要素を作成できますが、これはクリックジャッキングのように見え、一部のブラウザアドオンはサイトを潜在的なリスクとしてマークする可能性があります

このトピックに関する同様の議論は次のとおりです。クリックをその背後の要素にフォールスルーできるHTML「オーバーレイ」

于 2012-05-25T20:30:58.540 に答える