代码之家  ›  专栏  ›  技术社区  ›  Alexander_F

jQuery FancyBox/LightBox问题

  •  1
  • Alexander_F  · 技术社区  · 14 年前

    我用JS在一个分区中编写了一些HTML。

    这样地

    $("#picdiv").html("<a rel='lightbox' href='pic.jpg'><img src='htumb.jpg'></a>");
    

    这只是一个例子。

    所以,我已经在$(document)中了。准备好破解这个代码。

    $('a[rel=lightbox]').fancybox();
    

    但是如果我点击链接,一个带图片的页面…我知道问题一定是,我用JS编写HTML,但我没有其他选择。那么我能让FancyBox工作吗?

    2 回复  |  直到 14 年前
        1
  •  0
  •   Hux    14 年前

    这是由于jquery的工作方式。FancyBox函数只适用于页面上的当前元素,而不是由javascript动态添加的元素。

    一个快速的解决方法可能是如下修改代码:

    $("#picdiv").append($("<a rel='lightbox' href='pic.jpg'><img src='htumb.jpg'></a>").fancybox());
    

    不确定上述方法是否可行,但一般的想法是确保创建的任何新元素都应用了插件。

        2
  •  0
  •   Alexander_F    14 年前

    解决方案

    $('.picture_display').find('a[rel=lightbox]').fancybox();