1

私は自分のjQueryコードでリスト項目<li>を先頭に追加しています.先頭にfancyboxを呼び出すテキストリンクがあります.<ul><li>

クラス 'fb' が付加されたアイテムをクリックすると、fancybox が呼び出されて開きますが、新しく追加されたテキスト リンク付きのリスト アイテムのみが、fancy box を開きません。

だからここに私がプリペンドに持っているものがあります

<a class='fb' href='viewtopic?id="+nextlistid+"'>"+title+"</a>

リンクから (class='fb') を削除しようとしましたが、代わりに一意の ID を付けました$("theuniqueid").addClass("fb");

ファンシーボックスのコードは次のとおりです(動作します)

$(".fb").fancybox({
    'padding': 0,
    'autoScale': false,
    'transitionIn': 'none',
    'transitionOut': 'none',
    'overlayColor': '#f7f7f7',
    'overlayOpacity': 0.5
});

クラスを新しく追加されたアイテムにアタッチする方法についてのアイデアはありますか?

前もって感謝します

4

2 に答える 2

2

要素を動的に追加したら、ファンシー ボックス関数を再度バインドする必要がありprependます (ここ)。このようなもの。

$("#thatDiv").prepend("<a class='fb' href='viewtopic?id="+nextlistid+"'>"+title+"</a>");
$(".fb").fancybox({
    'padding': 0,
    'autoScale': false,
    'transitionIn': 'none',
    'transitionOut': 'none',
    'overlayColor': '#f7f7f7',
    'overlayOpacity': 0.5
});

おそらく、バインド コードを汎用関数に移動して、多くの場所から呼び出すことができるようにします。

于 2012-05-29T11:44:23.547 に答える
0

最近追加したリンクで、 fancyboxメソッドをもう一度呼び出す必要があると思います。例えば:

var li = $("<li></li>").addClass("fb");
$(ul).prepend(li);
li.fancybox({/*...*/});

実際、最近のアイテムを動的に追加しましたが、以前の$(".fb")セレクターには新しく作成されたリスト アイテムが含まれていませんでした。

于 2012-05-29T11:46:03.283 に答える