2011-10-28 2 views
1

미안하지만 이미 살펴 봤지만 질문이 없었습니다. - 대답 (과거에 여기 내 질문에 대한 답을 많이 찾았습니다. 직장 동료들 + 갈고리들)Mootools 엘리먼트 주입

나는 Mootools 요소 주입을 배우면서, 나는 이것을 오랫동안 사용하지 않았으며, 그것이 모든 종류의 사용법에 내 눈을 뜨고 있음을 발견했다. 내 질문은 URL에 링크 된 새 이미지 요소를 어떻게 구성합니까? 예를 들어 어떻게 주사합니까?

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

나는이 개 별도의 요소 &하지만 하나 개의 요소로 결합하는 투쟁으로이 작업을 수행 할 수 있습니다. 제 질문과 조언을 읽어 주셔서 감사합니다.

마크

+0

덕분에 올라와있다 새 엘레멘트 (엘레멘트)는 새 엘레멘트 ('엘레멘트'), 엘레멘트 (엘레멘트) , defaultLink = 새 요소 ('a', { '클래스': 'makeImageDefault', 'name': phot inject (defaultLink, 'inside') el. inject (default, 'inside'). inject (default, 'inside'). inject ($ ('photoGrid')); }}); – Gravesy

+0

주사가 완료되면 이제 제 2 호 문제에 직면합니다. 주입 된 클래스 = "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'는 esp입니다. 그래서 underused! Elements.from은 mootools에 의존합니다. http://mootools.net/docs/more/Element/Elements.From. –

+0

+1, 내 것보다 훨씬 나은 대답. 저는 MooTools를 배우면서 여전히 도움이됩니다.':)' –

+0

@DimitarChristoff, 나는'.subsitutute'를 좋아합니다. 나는 그것으로 경로를 사용할 수 있기를 바랍니다. ' '.substitute ({link : {url :'/ '}})' –

1

당신은 둥지에 두 개의 새로운 요소 (AN 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

덕분에, 필자 필자가 실험 된 내 요구 을 위해 다음과 같은 해결책을 제공 한 실험이었다 및 답변에 대한 내 요구에 대해 다음과 같은 솔루션을

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 호 문제가 발생합니다. thats injection class = "makeImageDefault"는 $$ ('a.makeImageDefault')에 연결됩니다. 추가 주입을 시작하는 addEvent()는 주입 후 작동하지 않습니다. – Gravesy

+0

해결책을 축하합니다. 할 수있을 때, 다른 사람들이 당신에게서 성공을 배울 수 있도록 대답을 '수락'으로 표시하십시오. 건배 ~ –