2

http://buckwilson.me/lightboxme/スクリプトを使用しています。

HTMLは次のとおりです(.team-memberページには複数あります)。

<div class="team-member">
    <div class="featured-photo"></div>
        <h3></h3>
        <h4></h4>
    <div class="member-info">
        <h5></h5>
        <p class="member-photo"></p>
    </div>
</div>

これが私のJSです:

<script>
jQuery('.team-member').click(function() {
    jQuery(this).children('.member-info').lightbox_me({
        centered: true
    });
});
</script>

それぞれ.team-memberをクリックすると、ページをクリックするとライトボックスがポップアップして消えます...必要に応じて、それは1回しかできません。もう一度クリックしても、ライトボックスが2度目にポップアップしません。これを回避する方法はありますか?

4

2 に答える 2

1

これは、lightbox_meがDOM要素を初期位置から移動し、スタイルを適用する前に本体に追加しているために発生しています。これは、jQueryダイアログに精通している場合の動作と似ています。

選択は子育て階層に依存するため、次にクリックイベントが発生するjQuery(this).children('.member-info')と、一致するオブジェクトは返されず、lightbox_meの呼び出しは失敗します。

これを回避するには、ライトボックス化する前にオブジェクトのクローンを作成し、destroyOnCloseフラグをtrueに設定します。

jQuery('.team-member').click(function() {
    jQuery(this).children('.member-info').clone().lightbox_me({
        centered: true,
        destroyOnClose: true
    });
});

jsfiddle

于 2013-02-05T11:18:39.690 に答える
0

あなたはフィドルリンクを提供していないので、私にはわかりませんが、それが機能するかどうかを確認するために以下を試すことができます

jQuery('.team-member').live('click',function() {
    jQuery(this).children('.member-info').lightbox_me({
        centered: true
    });
});
于 2013-02-05T11:05:24.447 に答える