0

クリック可能な画像から呼び出される「親」オーバーレイがあります。オーバーレイ自体には、イメージ、テキストの表、閉じるボタン (閉じる)、およびタグ付き要素である「リンク」があります。これらは、閉じるボタンを含む親と同じ書式設定の「子」オーバーレイを呼び出すタグ付き要素です (ただし、子の「」はありません)。リンク」自体)。

「子」オーバーレイの閉じるボタンをクリックするたびに、子だけを閉じたいのに、子と親の両方が閉じます。親と子は同じタグとクラス名を持っているため、jqueryはcloseイベントが親と子用であると考えているためだと思います。

スクリプトは次のとおりです。

<script type="text/javascript">
$(document).ready(function () {
    $('img[rel]').overlay({
        oneInstance: false
    });

    $('a[rel]').overlay({
        oneInstance: false,
        onLoad: function () {
            $('.close').click(function (event) {
                event.preventDefault();
                $('a[rel]').overlay().close();
            });
        }
    });
});
</script>

ご覧のとおり、子の閉じるクリックをインターセプトして子のみを閉じようとしていますが、うまくいきません。私は何を間違っていますか?

4

1 に答える 1

0

変化する

$('a[rel]').overlay({
    oneInstance: false,
    onLoad: function () {
        $('.close').click(function (event) {
            event.preventDefault();
            $('a[rel]').overlay().close();
        });
    }
});

$('a[rel]').each(function () {
    var that = $(this);
    that.overlay({
        oneInstance: false,
        onLoad: function () {
            $('.close').click(function (event) {
                event.preventDefault();
                that.overlay().close();
            });
        }
    });
});
于 2013-03-27T18:20:22.123 に答える