2

Initialize lightbox:

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

I have static images on page:

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

And i have link with id="knav1" on click this load new images with jquery script:

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

Links type is the same as above, but lightbox with them no longer works. I think this is because of was originally do not have them on page. How can I fix this problem?

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 回答
0

该主题有不止一个帖子...

动态链接和 jQuery 灯箱问题:在灯箱中加载图像......完全难倒!

灯箱不适用于 AJAX 加载部件

在动态添加的内容上激活灯箱

答案很简单

改成:

$("selector").live('click', function (){
      $(this).lightBox();
});

Alt (取决于您使用的 Jquery 版本 1.7+)

$("selector").on('click', function (){
      $(this).lightBox();
});
于 2013-04-18T06:16:01.183 回答
-1

您可以使用 jquery 的 live() 方法来使页面上出现的所有新元素正常工作。您必须更改当前的灯箱功能才能使用 live(); 可能的解决方案是这样的:

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