0

各オプションで画像を<select>divにロードします。ajax 画像ローダーの出力は次のとおりです。

<a class="fancybox" href="/useruploads/types/4.jpg" title="Columnlist #1">
    <img style="max-width:300px" src="/useruploads/types/4.jpg" alt="Columnlist #1">
</a>
<h6>Columnlist #1</h6>

そして、これはに挿入されます<div class="thumbnail"></div>

だから私は次のjavascriptで試しました

$('body').delegate('a.fancybox', 'click', function() {
    $(this).fancybox();
    console.log($(this));
    return false;
});

そして、これは<a>要素をログに記録しますが、画像はファンシーボックスを取得しません(戻り値falseを削除すると、ロードのURL)

jquery (1.9.1)、fancybox javascript (2.1.5)、fancybox css を追加したところ、すべてのファイルがブラウザに正しく読み込まれました。

コンソールにエラーはありません。

[編集] Highslide に変更したところ、完全に機能するようになりました

4

1 に答える 1

0

jQuery 1.7 の時点で、.delegate()は .on() メソッドに取って代わられました。ただし、以前のバージョンでは、イベント委任を使用する最も効果的な手段であり続けています。

.on()を使用する

構文

$( elements ).on( events, selector, data, handler );

あなたのコードは

$('body').on('click','a.fancybox' ,function() {
    $(this).fancybox();
    console.log($(this));
    return false;
});
于 2013-10-10T15:03:13.047 に答える