iFrame仅适用于第一个阵列?

时间:2011-02-06 12:13:57

标签: php fancybox

我正在使用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的方式。但是,它只适用于第一个阵列。

3 个答案:

答案 0 :(得分:2)

修订回答:

似乎你不想要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 - How to use

答案 1 :(得分:1)

 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>';
  }

可能会工作

答案 2 :(得分:1)

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

将一些类分配给A-tags并使用它:

$("#various3")

---&GT;

$(".various3")