jquery - 为什么 Fancybox 只适用于图像的第一部分?

标签 jquery html css fancybox

我有一些 HTML 代码可以显示 9 个带有花式框样式的图像。 我在标签之间复制了 HTML 代码,并为 styles.css 中的每个重复项添加了一个唯一的 ID。

但是,重复的部分没有 fancybox 工作。

这是每个部分代码的前几行。每个重复部分的不同之处仅在于“工作”是“工作 1”、“工作 2”等。我假设在这些随附的 js 文件或 fancybox.js 或 fancybox.css 文件中的某处有另一个属性。但我查看了这些文件,发现 HTML 和 styles.css 没有任何共同之处。

 <section class="clearfix" id="work" name="work">
    <header>
    <h2>Graphic Design</h2>
    </header>
    <ul class="projects list">

我猜 fancybox 必须在接下来的几行中初始化:

    <li><figure><a href="images/pricing_table_3.jpg" rel="work"><img     
    src="images/work_img.jpg" alt="Image" /></a>
    <figcaption><a href="http://website.com/">Visit Livesite<span>&nbsp;&rarr;  
    </span></a></figcaption>
    </figure>

我只更改了该代码中的“工作”属性。 work1等

我理解您将代码添加到每个 #work 标签的意思,但是 #work、#work1 等只出现在 styles.css 中,而没有出现在任何其他文件中。

我尝试插入该代码,但它似乎并不重要。我认为根本问题是我什至找不到在“工作” block 上初始化 fancybox 的位置。如果我能找到那个,我会添加其他的。

我在上面两个代码示例之间插入了这样的代码:

 <script type="text/javascript">
 $("#work2 a").fancybox();
 </script>          

最佳答案

您需要在您希望具有此行为的所有链接 (...) 标签上初始化 FancyBox。例如:

$("#work a").fancybox();   // initialize fancybox on "work" block
$("#work1 a").fancybox();  // initialize fancybox on "work1" block
$("#work2 a").fancybox();  // initialize fancybox on "work2" block

描述:

  • “#work”是容器的 ID - 在您的例子中是“section” block
  • 后面的“a”(在“$("#work a")”函数调用中)是链接标记,您要在其上添加 FancyBox 行为。

关于jquery - 为什么 Fancybox 只适用于图像的第一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7816770/

相关文章:

html - Bootstrap 可滚动列,高度为 100%

javascript - 使用下拉列表填充 HTML 页面

javascript - 复制 html 元素以缩放至全屏的正确方法

html - 如何在 laravel 表单中添加 Bootstrap 字形图标

javascript - 浏览器向下滚动后更改 href url

jquery - 我怎样才能知道用户是否正在尝试打印

javascript - 使用 jQuery 如何检测何时接近屏幕底部?

javascript - 将html页面预渲染成图像

javascript - 我可以减少这个方法来实例化一个对象并插入一个数组吗?

jquery - 如何在 jQueryMobile 1.3.1 中通过 AJAX 使用正确的字符编码加载 ISO-8859-1 内容?