2011-10-28 2 views
1

imこれは既にカバーされていますが、私は見ていますが、質問に答えることはできませんでした - 私は過去にここに私の質問に多くの答えを見つけました - 仕事仲間+ギャル)Mootools要素の注入

私はMootoolsの要素注入を学んでいますが、私はこれを長年使っていませんでした。私はあらゆる用途に目を開けています。私の質問は、私はどのようにURLにリンクされている新しい画像要素を構築するのですか?例えば私はどのように注入するのですか?

<a href="[url]"><img src="[path]" /></a> 

私は2つの別々の要素としてこれを行う&が、1つの要素として、それらを組み合わせるのに苦労することができます。私の質問とアドバイスを読んでいただきありがとうございます。

マーク

+0

おかげで出ている、実験されてIVEと私のニーズ ため、次の解決策が出ています写真要素( 'img'、{ 'src':photo.src })。inject(el)画像の新しい要素(写真){ var el =新規要素['div.image']、 、 defaultLink =新しい要素( 'a'、{ 'class': 'makeImageDefault'、 'name':phot (インライン) el。})。inject(画像、 '後')、 defaultImageIcon = new要素( 'img'、{ 'src':photo.defaultIcon } inject($( 'photoGrid')); }); – Gravesy

+0

注射が完了したら今は第2号に直面しています。注入されたclass = "makeImageDefault"のリンクは$$( 'a.makeImageDefault')に接続されています。新しい注入を開始するaddEvent()は注入後に機能しません – Gravesy

答えて

2

Elements.fromを使用すると、高速で完全に有効で簡単です。

var collection = '<a href="{href}"><img src="{src}" /></a>'; 
Elements.from(collection.substitute({ 
    href: 'http://www.stackoverflow.com', 
    src: 'http://www.placekitten.com/300/300' 
})).inject(document.body); 

明白な欠点は、作成されたノードへの参照がなく、要素のコレクションだけです。あなたの応答のための

+0

+1、 '.substitute'とても不十分! Elements.fromはmootools-more http://mootools.net/docs/more/Element/Elements.Fromに依存しています。 –

+0

+1、私よりもはるかに良い答えです。私はまだMooToolsを学んでいるので、これは役に立ちます。 ':)' –

+0

@DimitarChristoff、私は '.subsitutute'が大好きです。 '{'{link:{url:'/'}})' –

1

あなたは巣にそれらを二つの新しい要素(imga)にgrabまたはinjectを使用することができます。

<a href="http://www.stackoverflow.com"> 
    <img src="http://www.placekitten.com/300/300"> 
</a> 

var anchor = new Element("a", { 
    href: "http://www.stackoverflow.com" 
}); 

var img = new Element("img", { 
    src: "http://www.placekitten.com/300/300" 
}); 

// inject the img into the anchor 
img.inject(anchor); 

// Append the anchor into the body: 
document.body.grab(anchor); 

これは、次のHTMLを生成します。 例:http://jsfiddle.net/tNamz/

0

おかげで、実験してIVEと私のニーズのために、以下の溶液を用いて、あなたの応答のための

photos.each(function(photo){ 
    var el = new Element('div.image'), 
    image = new Element('img', { 
     'src': photo.src 
    }).inject(el), 
    defaultLink = new Element('a', { 
     'class': 'makeImageDefault', 'name': photo.id 
    }).inject(image, 'after'), 
    defaultImageIcon = new Element('img', { 
     'src': photo.defaultIcon 
    }).inject(defaultLink, 'inside') 
    el.inject($('photoGrid')); 
}); 
+0

注射が完了したら今は第2号に直面しています。注入されたclass = "makeImageDefault"のリンクは$$( 'a.makeImageDefault')に接続されています。注入後に新しい注入を開始するaddEvent()は注入後に機能しません – Gravesy

+0

解決策をお祝いします。あなたができるときは、あなたの答えを「受け入れられた」とマークして、他の人があなたの成功から学ぶかもしれないようにしてください。乾杯〜 –

関連する問題