5

何らかの理由で、ドキュメントをクリックしても Chrome で機能しません (closeQuickView が呼び出されていません)。

要素は AJAX 経由で読み込まれるため、.on() アクションが必要です (以前は .live() でしたが、現在はjQuery 1.7で廃止されています) 。

ここに示す例を使用しました:要素の外側のクリックを検出するにはどうすればよいですか? 基礎として

$('html').on('click', '.poster:not(.active) .image-effect', function (event) {

        var obj = $(this).parent();

        // If there are no .close spans
        if (obj.find('.close').length === 0) {

            // Add the close element by javascript to remain semantic
            obj.find('.quick-view').append('<span class="close">&times;</span>');
        }

        // Close any open Quick Views
        closeQuickView();

        // Add the active class (controls opacity)
        obj.addClass('active');

        // Fade in the Quick View
        obj.find('.quick-view').fadeIn(200, 'easeInOutQuint');

        event.preventDefault();
        event.stopPropagation();

    });

    $('html').on('click', '.active', function () {
        return false;
    });

    $('html').on('click', '.close', function () {
        closeQuickView();
    });

    $('html').on('click', '.quick-view', function (event) {
        event.stopPropagation();
    });

    // Close the QuickView with a button
    $('html').on('click', function () {
        closeQuickView();
    });

    function closeQuickView() {
        $('.poster').removeClass('active');
        $('.quick-view').fadeOut(200, 'easeInOutQuint');
    }

私のマークアップは次のとおりです。

<figure class="grid_2 box poster">
    <a class="image-effect" href="#">
        <img class="colour" src="path/to/image" />
        <img class="bw" src="path/to/image" />
    </a>
    <div class="quick-view">

        Content

    </div>
</figure>
4

2 に答える 2

8

試すevent.stopImmediatePropagation

ドキュメントを参照

于 2011-11-05T18:12:09.393 に答える
0

jquery 1.6.4 にも同じバグがあります。stopImmediatePropagation を使用して解決しました。

于 2011-11-18T12:33:45.473 に答える