저는 웹 디자인 및 프로그래밍과 관련하여 매우 새롭습니다. JavaScript를 사용하여 간단한 갤러리를 만들고 있습니다. jQuery를 사용하는 것이 매우 쉽다는 것을 알고 있습니다. 그러나 나는 그것을 사용할 수 없다 (과제).글리치 JavaScript
여기서 문제가되는 코드이다 : ID의 H0와
var img = new Array(); //declared globally, accessed by other functions
function displayImage(){
var img_num = document.getElementById('img_num').getAttribute("value");
for(j=0;j<img_num;j++)
img.push(document.getElementById('h'+j).getAttribute("value"));
var list_width = 0;
for(var i=0;i<img_num;i++)
{
document.getElementById('list_holder').innerHTML += "<img src='" +img[i]+ "'onclick=\"show(this.id);\" height = \"70%;\"id='"+i+"'/>";
list_width += document.getElementById(i).offsetWidth + 15;
}
document.getElementById('list_holder').style.width = list_width+"px";
return false;
}
요소, H1, H2 ... 등의 화상의 경로 및 ID의 0,1을 포함 입력 유형 숨김, 2 ..는 태그입니다.
img.push
을 사용하여 img
배열에 경로를 저장하기 위해 JS에서 사용하고 있습니다. 그런 다음 배열의 값을 사용하여 정확히 <img>
태그를 여러 개 만들었습니다 (높이를 지정하고 가로 세로 비율을 결정하기 위해 너비를 남겨 둡니다.) 이제 전체 부모의 div
을 계산해야합니다. 내가 list_width+=document.getElementById(i).offsetWidth
를 사용하여 생각 때문에 이러한 img
태그 'list_width').
하지만 내가 처음으로 페이지를 열 때, 실제 폭이 반환되지 않는되어 일어나는. 그것은 4
을 반환, 기본적입니다 분 페이지 너비를 생각했다. 예상대로 작동하는 페이지를 새로 고치기. 내가 그것을로드 한 후 한 번만 페이지 새로 고침을 통해 해결 방법을 사용할 수 있지만 알고 싶습니다 '원하는'또는 ' 전문적인 방법으로.
미리 감사드립니다.
중괄호는 어디에 있습니까? 'for' 루프는'list_width + = document.getElementById (i) .offsetWidth + 15;' – Oleg
에 영향을주지 않습니다. 파이썬, haml 등과는 달리 자바 스크립트는 들여 쓰기를 신경 쓰지 않습니다. – BenMQ
정말 죄송합니다. 실제로는 아닙니다. 디버깅 출력을 여러 줄 제거하고 중괄호에 빠뜨린 것입니다. P 수정하겠습니다.내 코드에서 대괄호는 모두 괜찮습니다. – Shark