2011-02-06 13 views
1

私はFancyBoxを使用して私のiframeを含んでいますが、それは最初の配列に対してのみ機能します。その上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がインラインフレームを伝える方法です。しかし、それは最初の配列に対してのみ機能します。

+0

を。あなたのサイトを訪問した後、それはあなたが意味することは明らかです、それは最初の項目のためだけに働きます。 –

答えて

2

改訂答え:

あなたがのiFrameをしたいが、ちょうどAjaxを介してコンテンツをロードしていないようです。あなたの問題は、すべての要素が同じIDを持つことです。あなたは

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

経由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も参照してください。

+0

うん、私はこれをやった、それは動作します!私はまた、すべてのtxtファイルを基本的なhtmlファイルに変更したので、スタイルを改善することができました – Jake

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

あなたはいくつかの要素に同じID(すなわち、 "various3")を使用

1

を働くかもしれません。 これはこの方法では機能しません。 すべてのIDは一意である必要があります。

-タグにいくつかのクラスを割り当て、それを使用する:*それが唯一の混乱と誤解を招く*最初の配列のために働く文を

$("#various3") 

--->

$(".various3") 
関連する問題