Jquery 加载新图像后Lightbox不工作
初始化灯箱:Jquery 加载新图像后Lightbox不工作,jquery,image,lightbox,Jquery,Image,Lightbox,初始化灯箱: <script type="text/javascript" src="<?=SITE_TEMPLATE_PATH?>/js/slimbox2.js"></script> 链接类型与上面相同,但带有链接的lightbox不再工作。我想这是因为本来就没有他们在页面上。如何解决此问题?主题中有多篇帖子 答案很简单 更改为: $("selector").live('click', function (){ $(this).light
<script type="text/javascript" src="<?=SITE_TEMPLATE_PATH?>/js/slimbox2.js"></script>
链接类型与上面相同,但带有链接的lightbox不再工作。我想这是因为本来就没有他们在页面上。如何解决此问题?主题中有多篇帖子 答案很简单 更改为:
$("selector").live('click', function (){
$(this).lightBox();
});
Alt(取决于您使用的Jquery版本1.7+)
您可以使用jquery的live()方法使页面上出现的所有新元素正常工作。
您必须更改当前的lightbox函数以使用live();
可能的解决办法是:
$("a.itogdetimg").live("click", function(){ $(this).lightbox(); });
对于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框架,所以我可以就什么库更好给出一个很好的建议。(这些看起来是最新的:)您提供的代码中缺少初始化lightbox的部分。但问题很可能是因为jquery选择器,如
$(“[rel='lightbox']”)。lightbox()
仅适用于调用选择器时dom中的元素。因此,您需要将lightbox应用于新添加的元素,并成功回调以加载(但如何正确执行取决于您使用的lightbox插件)。live
从1.7开始就不推荐使用,应该提到这一点。@t.niese更新了更新版本=)但不正确;)相当于$(“#knav1”).live('click',…
是$(document)。on('click','#knav1',…
)但无论如何,我不认为#knav1
被另一个具有相同id的链接所取代,问题更多的是没有连接灯箱的单击处理程序。fancybox还吸收动态内容
$("selector").on('click', function (){
$(this).lightBox();
});
$("a.itogdetimg").live("click", function(){ $(this).lightbox(); });
$("#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*/);
});
});