2013-06-17 1 views
1

어쩌면 이것은 매우 어리석은 질문 일 수 있습니다.하지만 Google에서이 사실을 파악할 수 없기 때문에 어리석은 질문은 아닙니다. 나는이 볼 콘솔에서selector 요소 및 컨텍스트를 표시합니다. 요소를 가져올 수 없습니다.

$.each(items, function (key, t) { 
    $("#list").append(
    $("<li />") 
    .append($("<img />") 
     .attr("src", "path/to/" + t.Thumbnail) 
     .addClass("thumb")) 
     .append($("<span />") 
     .html("<b>" + t.Title + "</b><br />" + t.Description))); 
}); 

엄지 손가락을 통해이 I 루프 후 어떤 스타일을 할 수있는 (크기와 비율,하지 여기에 해당)

$(".thumb").each(function() { 
    console.log($(this)); 
}); 

:

나는이 jQuery를 가지고 :

[img.thumb, context: img.thumb, jquery: "1.9.0", constructor: function, init: function,  
selector: ""…] 
0: img.thumb 
context: img.thumb 
length: 1 
__proto__: Object[0] 

이 컨텍스트는 무엇입니까? $ (this) .width()를 사용하면 오류 또는 0이 표시됩니다. 이미 페이지에있는 이미지를 가지고있을 때 ... 작동합니다!

문제는 다음과 같습니다. 왜 작동하지 않는데 왜 다른 페이지에서 작동합니까? 사전에

감사

편집 : 추가 바이올린 예 : http://jsfiddle.net/nN9ce/

+1

당신이 만들 수 : 여기

$(".thumb").each(function (idx, thumb) { console.log($(thumb)); console.log($(thumb).width()); }); 

는 바이올린 업데이트됩니다 문제? – j08691

+0

또는 오류가 무엇인지를 복사하여 지나치십시오. – asafreedman

+0

선택기'$ ('. thumb')'을 사용하면 특정 선택자를 찾기 위해 전체 DOM을 탐색합니다.하지만 컨텍스트를 전달하면 해당 특정 'context'에서 해당 요소를 찾으려고 시도합니다 .. 만약 당신이'$ ('. thumb', 'table')과 같은 selector를 쓰면'DOM' 전체가 아닌'table' 엘리먼트 내에서만 요소를 찾으려고 시도합니다 –

답변

4

.width()은 이미지 자체가 아니라 요소의 크기를 가져옵니다. 스크립트가 실행될 때 이미지가 dom에 추가되었지만 이미지가로드되지 않았으므로 요소가 너비가 0이됩니다 (이러한 요소에로드하려는 이미지의 너비가 128 인 경우에도).

이미지가로드 된 후 콜백을 실행해야합니다.

+0

의미가 있습니다 ... 어쨌든 :) 시도해 보겠습니다. –

+0

이것은 유용 할 수도 있고 그렇지 않을 수도 있습니다! http://stackoverflow.com/questions/3877027/jquery-callback-on-image-load-even-when-the-image-is-cached – Djave

+1

Hero! :) 피들 (Fiddle)을 업데이트했습니다 : http://jsfiddle.net/nN9ce/3/ 최종 작업 중입니다! 글쎄 ... 아주 쉽고 바보 같았 어. 감사! –

-1

방법 문제에 대해 확실하지만

width 

그래서 속성을 사용할 수있는 것은 아닙니다, 당신을 그럴거야.

0

이미지의 너비 및 높이 특성을 설정하지 않았습니다. 이 변경을 시도해보십시오

.attr("src", "http://www.logoquizantwoorden.nl/wp-content/uploads/2012/06/Logo-Quiz-uitleg.png") 
.attr("height", "128") 
.attr("width", "128") 
.addClass("thumb") 

바이올린 : http://jsfiddle.net/sBSnS/

+1

그게 전부입니다 : 정의 된 크기가 아니라 이미지의 실제 크기를 가져옵니다. 크기와 함께 놀 필요가 있지만 비율을 유지하십시오. –

-1

대신이 시도하십시오 jsFiddle 쇼 그

http://jsfiddle.net/nN9ce/2/

+0

다른 사람들과 똑같은 실수를 저지르고 있습니다. 캐시를 지우고 바이올린을 실행하십시오. 이미지가 캐시에서 나오기 때문에 첫 번째 시간에는 0을, 그 다음에는 값을 얻습니다. – j08691

+0

캐시는 나쁜 사람이 아니 었습니다 ... 이번에. 제가 선택한 대답을보십시오. 이미지를로드 할 때까지 기다려야했습니다. –

+0

완전히 사실입니다! 죄송합니다 ... 심하게 문제를 읽고 코드를 읽으십시오 ... 나쁜 수면을 비난하는 최신 이틀 :) :) – bang

관련 문제