2

ライトボックスを初期化:

<script type="text/javascript" src="<?=SITE_TEMPLATE_PATH?>/js/slimbox2.js"></script>

ページに静止画像があります:

<a class="itogdetimg" href="" rel="lightbox" title="">
    <img width="83px" src="/img.png" border="0"/>
</a>

そして、私はid="knav1"これをクリックするとjqueryスクリプトで新しい画像をロードするリンクがあります:

$("#knav1").click(function(){
        $("#navldesc").load('/api.php?nvl=y&komplektn=Комплит2');
});

リンクの種類は上記と同じですが、それらを含むライトボックスは機能しなくなりました。これはもともとページに載っていなかったからだと思います。この問題を解決するにはどうすればよいですか?

4

3 に答える 3

1

Slimbox2 の場合、これは機能するはずです。

$("#knav1").click(function(){
        $("#navldesc").load('/api.php?nvl=y&komplektn=Комплит2',function() {
             $("#navldesc").find("[rel='lightbox']").slimbox(/*if you have custom options place them here*/);
        });
});

私の最初のコメントに言及したように、問題は、slimbox2 が ajax によって追加された画像を気にしないことです。slimboxそのため、新しく追加された画像に自分で適用する必要があります。

しかし、私が見る限り、slimbox2 は長い間更新されていないため、新しいバージョンの jquery と互換性がない可能性があります。代替案を考えることをお勧めします。私は独自のUIフレームワークを持っているので、どのライブラリが優れているかについて本当に良いアドバイスをすることができます. (これらは最新のようです: fancybox2 lightbox2 )

于 2013-04-18T06:42:49.540 に答える
-1

jquery の live() メソッドを使用して、ページに表示されるすべての新しい要素を機能させることができます。live(); を使用するには、現在のライトボックス関数を変更する必要があります。考えられる解決策は、これに関するものです:

$("a.itogdetimg").live("click", function(){ $(this).lightbox(); });
于 2013-04-18T06:19:20.913 に答える