首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fancybox-2 :动态更新原始元素时停止工作

Fancybox-2 :动态更新原始元素时停止工作
EN

Stack Overflow用户
提问于 2013-04-18 22:00:22
回答 1查看 224关注 0票数 2

因此,这里是一个场景:我试图创建一个图库,其中有一个启用了Fancybox的“主”映像(带有一个.fancybox类),在这个主图像下面是几个缩略图,点击后分别更新主<a><img>元素的hrefsrc

现在,当页面加载时,如果单击主图像,Fancybox就会触发,而不会像预期的那样引发问题。但是,当我单击下面的缩略图之一时,主图像和带有缩略图内容的链接更新--如果我现在单击主图像,它只会转到指定的URL;而不是Fancybox。

即使在交换发生之后,我要重新打电话给$('.fancybox').fancybox();;什么也没有。

无论如何,下面是代码和jsFiddle:

Fiddle

http://jsfiddle.net/sbeliv01/jRsjK/4481/

代码语言:javascript
复制
<!-- The "Main" Photo -->
<a rel="gallery" class="fancybox" href="http://fancyapps.com/fancybox/demo/1_b.jpg">
    <img src="http://fancyapps.com/fancybox/demo/1_s.jpg" alt=""/>
</a>

<!-- The thumbnails that update the main photo -->
<ul>
    <li>
        <a class="update" href="http://placekitten.com/600/300" title="This is the test title.">
            <img src="http://placekitten.com/150/150" width="45" width="45" title="This is the test title." />
        </a>
    </li>
    <li>
        <a class="update" href="http://placekitten.com/600/300" title="This is the test title.">
            <img src="http://placekitten.com/150/149" width="45" width="45" title="This is the test title." />
        </a>
    </li>
    <li>
        <a class="update" href="http://placekitten.com/600/300" title="This is the test title.">
            <img src="http://placekitten.com/g/150/150" width="45" width="45" title="This is the test." />
        </a>
    </li>
</ul>

JS

代码语言:javascript
复制
$(".fancybox").fancybox({
    live: true
});

$('.update').on('click', function(e) {

    e.preventDefault();

    var main      = $('.fancybox'),
        href      = $(this).prop('href'),
        title     = $(this).prop('title'),
        img_src   = $(this).find('img').prop('src'),
        img_title = $(this).find('img').prop('title');

    main
        .prop('title', title)
        .prop('href', href)
        .find('img')
        .prop('src', img_src)
        .prop('title', img_title);

    $(".fancybox").fancybox();

});

我可能太专注了,找不到任何显而易见的东西,所以谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-19 01:30:12

fancybox第一次工作的原因是,第一个链接的URL以图像为目标,例如:

代码语言:javascript
复制
http://fancyapps.com/fancybox/demo/1_b.jpg

..。而其他人则前往一个地点,例如:

代码语言:javascript
复制
http://placekitten.com/600/300

..。没有任何图像扩展。在第二个URL中,fancybox不知道要处理的内容的type,这就是为什么在新的窗口/选项卡中打开链接的原因。

您必须将内容的type强制为image,例如

代码语言:javascript
复制
$(".fancybox").fancybox({
    type : "image"
});

你其实不需要re-call the $('.fancybox').fancybox(); after the swap has taken place

请参阅小提琴

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16093849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档