iFrame 仅适用于第一个数组?

发布于 2024-10-16 00:32:57 字数 562 浏览 4 评论 0原文

我使用 FancyBox 来包含我的 iframe,但它仅适用于第一个数组。数组如下所示:

$gallery_items = array(
array("img_src" => "gallery/thumb_1.jpg", "link" => "gallery/profile1.txt"),
array("img_src" => "gallery/thumb_2.jpg", "link" => "gallery/profile2.txt"),

等等,然后是它的生成方式:

echo '<li><a id="various3" href ="' . $current_gallery_item["link"] . '"><img src="' . $current_gallery_item["img_src"] . '" /></a></li>';

id="various3" 是 FancyBox 告诉其 iframe 的方式。但是,它仅适用于第一个数组。

I'm using FancyBox to contain my iframes, but it only works for the first array. Here's what the array looks like:

$gallery_items = array(
array("img_src" => "gallery/thumb_1.jpg", "link" => "gallery/profile1.txt"),
array("img_src" => "gallery/thumb_2.jpg", "link" => "gallery/profile2.txt"),

and so on, and then here is how it is produced:

echo '<li><a id="various3" href ="' . $current_gallery_item["link"] . '"><img src="' . $current_gallery_item["img_src"] . '" /></a></li>';

the id="various3" is how FancyBox tells its an iframe. But, it only works for the first array.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

櫻之舞 2024-10-23 00:32:57

修订后的答案:

您似乎不需要 iFrame,而只是通过 Ajax 加载内容。你的问题是每个元素都有相同的 ID。如果您通过以下方式附加 Fancybox

 $('#various3').fancybox();

,那么它将仅应用于第一个元素,因为 ID 必须是唯一的

使用类代替:

<ul>
<?php foreach($gallery_items as $item): ?>
     <li>
         <a class="various3" href ="<?php echo $item['link']; ?>">
             <img src="<?php echo $item["img_src"]; ?>" />
         </a>
     </li>
<?php endforeach;?>
</ul>

和 jQuery:

$('a.various3').fancybox();

如果您确实想要 iFrame,您只需将 iframe 类添加到链接元素即可:

<a class="various3 iframe" ...>

这将自动告诉 Fancybox 使用 iFrame。

另请参阅Fancybox - 如何使用

Revised answer:

It seems you don't want iFrames but just load the content via Ajax. Your problem is that every element has the same ID. If you attach Fancybox via

 $('#various3').fancybox();

then it will only be applied to the first element, because IDs have to be unique.

Use classes instead:

<ul>
<?php foreach($gallery_items as $item): ?>
     <li>
         <a class="various3" href ="<?php echo $item['link']; ?>">
             <img src="<?php echo $item["img_src"]; ?>" />
         </a>
     </li>
<?php endforeach;?>
</ul>

And jQuery:

$('a.various3').fancybox();

If you really want to have iFrames, you can just add the iframe class to the link elements:

<a class="various3 iframe" ...>

This will automatically tell Fancybox to use iFrames.

See also Fancybox - How to use.

恏ㄋ傷疤忘ㄋ疼 2024-10-23 00:32:57
 foreach($gallery_items as $current_gallery_item){
    echo '<li><a id="various3" href ="' . $current_gallery_item["link"] . 
          '"><img src="' . $current_gallery_item["img_src"] . '" /></a></li>';
  }

可能有用

 foreach($gallery_items as $current_gallery_item){
    echo '<li><a id="various3" href ="' . $current_gallery_item["link"] . 
          '"><img src="' . $current_gallery_item["img_src"] . '" /></a></li>';
  }

Might work

甜`诱少女 2024-10-23 00:32:57

您对多个元素使用了相同的 id(即“various3”)。
这样是行不通的。
每个 id 都应该是唯一的。

为 A 标签分配一些类并使用它:

$("#various3")

--->

$(".various3")

You used the same id (namely, "various3") for several elements.
This will not work this way.
Every id should be unique.

assign some class to A-tags and use it:

$("#various3")

--->

$(".various3")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文