2012-03-19 6 views
0

私は各サムネイルから画像をロードし、Opentip(opentip.org)を追加しようとしています。Prototype - each()内の関数 - 最後の値を返します

タグの追加とツールチップの作成に成功しました。唯一の問題は、配列内の最後の値(すべてのサムネイル)が表示されることです。

ここに1つの製品へのリンクです:http://www.inusual.com.br/poltrona-evo.html

は、元のHTMLは、私がランダムに追加した

<div class="ca-thumbnails"> 
    <div> 
     <img src="xxx"> 
    </div> 
    <div> 
     <img src="xxx"> 
    </div> 
</div> 

です。すべて正常に動作し、各imgに正しく追加されます。画像のみが表示されません。

var tip = $$('.ca-thumbnails div img'); 
tip.each(function(s, index) { 

    src = s.readAttribute('src'); 
    function image() { 

    return Builder.node('img', { 'src': src }); 
    } 

    s.wrap('a', { 'class': 'tip', 'onclick':'return false;', 'href': src}); 
    s.up(0).addTip(image, { ajax: false, showEffect: 'appear', showon:'mouseover', className:'glass', containInViewport: true, target: true, stem: true, tipJoint: [ 'center', 'bottom' ], targetJoint: [ 'center', 'top' ] }); 

私は関数image()が最後の項目のみを取得すると考えています。

誰かがこれに手がかりを持っていますか? 私の英語は申し訳ありません。あなたが期待しているとき

おかげ

+0

「ビルダー」とは何ですか? – clockworkgeek

答えて

1

image関数が呼び出さ取得されていません。私は100%なぜそれがエラーではないかわからないが、addTipに要素を渡す代わりに、関数への参照を渡している(image)。

var tip = $$('.ca-thumbnails div img'); 
tip.each(function(s, index) { 

    var src = s.readAttribute('src'); 
    var image = new Element('img', {src: src}); 

    s.wrap('a', { 'class': 'tip', 'onclick':'return false;', 'href': src}); 
    s.up(0).addTip(image, { ajax: false, showEffect: 'appear', showon:'mouseover', className:'glass', containInViewport: true, target: true, stem: true, tipJoint: [ 'center', 'bottom' ], targetJoint: [ 'center', 'top' ] }); 
}); 

varキーワードを使用することを忘れないでください:それは問題を修正かどうかを確認するために、このお試しください!私はあなたがグローバルなimage変数を持っていることを知っています。これらの変数は、これらの特定のコード行にエラーがない理由と何か問題を抱えているかもしれません。

関連する問題