2

カテゴリを選択できる小さなポートフォリオを開発しています。クリックすると、そのカテゴリのコンテンツ (サムネイル) が表示されます (これは配列経由です)。

例えば

photography[0] = <a href="..." rel="lightbox" /><img ...  /></a>
photography[1] = <a href="..." rel="lightbox" /><img ...  /></a>

最初はサイトにすべてのカテゴリのコンテンツが表示され、サムネイルをクリックするとライトボックスがアクティブになりますが、カテゴリを選択して残りのサムネイルの 1 つを押すと、単に画像が表示され、ライトボックスで画像が開かれません。

これは、ページの最初のロード時にサムネイルがどのように見えるかです:

<div><a title="..." rel="lightbox" href="http://...yellow-brick-road.jpg" class="thumbnaila"> <img class="thumbnail " alt="" src="http://...yellow-brick-road.jpg" /></a>

カテゴリが選択されると、div 内のコンテンツが削除され、別のコンテンツ (まったく同じコンテンツなど) に置き換えられます。(したがって、rel="lightbox" はまだ存在します)。

誰かがこれで私を助けることができれば、私はそれが大好きです(私はjqueryを使用しています)。

応答後に編集 Alex Sexton:

$(".thumbnaila").live("mouseover", function(){
    activateLightbox($(this));});

function activateLightbox(dit) {
    $('a[rel="lightbox"]').lightBox({
            overlayBgColor: '#000',
            overlayOpacity: 0.65,
            containerResizeSpeed: 350
    });

}

しかし、カテゴリを選択してサムネイルを選択すると、正しいライトボックスがロードされますが、ご覧のとおり、必要なライトボックスの上に空のライトボックスもロードされます。

ここに画像の説明を入力

誰がこれを引き起こしているのか知っていますか?

4

2 に答える 2

1

リンクを通常のイベントハンドラーでバインドしている場合:

$('a[rel=lightbox]').click(function(e){ ... });

その後、バインド後に追加された新しいコンテンツはキャプチャされません。

コンテンツを変更したときにバインドを再実行するか、jQueryのイベント委任を使用してハンドラーをアタッチすることができます。

$('a[rel=lightbox]').live('click', function(e){ ... });
于 2009-10-20T22:10:18.037 に答える