2012-03-22 4 views
0

Minheight를 결정하고 자바 스크립트를 통해 넣어. 두 번 성공적으로 작동하지만 세 번째 호출에서 동일한 코드가 작동하지 않습니다. 이 하나 (document.getElementById ("rightadmin"). style.minHeight = wrapHeight + 'px';)가 작동하지 않습니다. 더 놀라운 것은 만약 내가 3 등을 2 순위로 올리면 작동하고 3 순위는 작동하지 않는다는 것입니다. 그래서 기본적으로 제 2 번째 이후에 넣은 것은 작동하지 않습니다.document.getElementById(); 세 번째 시간에 작동하지 않습니다

자바 스크립트 :

function height(){ 
var dheight= ($(document).height()); 
var wheight= ($(window).height()); 
if(dheight>wheight){ 
var wrapHeight= dheight; 
} 
else { 

var wrapHeight=wheight; 
} 
document.getElementById("iframeArea").style.minHeight=wrapHeight+'px'; 
document.getElementById("dailySchedule").style.minHeight=wrapHeight+'px'; 
document.getElementById("rightadmin").style.minHeight=wrapHeight+'px'; 
} 

HTML :

<body onload="height();"> 
    <!--Start of iframeArea--> 
    <div class="iframeArea" id="iframeArea"> 
     <div class="btnRight" id="rightadmin"> 

     </div> 
    <!--End of btnRight--> 
    </div> 
<!--End of iframeArea--> 
+1

'dailySchedule'요소가 있습니까? – fcalderan

+1

whe 다시는 dailySchedule입니까? – 11684

+0

완전한 HTML 구조를 제공하시기 바랍니다. – Nishant

답변

3

는 당신에게 dailySchedule ID가 존재 하시겠습니까? 그렇지 않으면 함수가 오류를 발생시키고 마지막 행을 실행하지 않습니다.

+0

yes로 HTML DOM을 검사 해보십시오. 그것은 존재합니다. 그 클래스는 또 다른 페이지를위한 것이고 그것은 그것의 2 위치에서 완벽하게 작동합니다. 하지만 3 순위에두고 "rightadmin"을 2 순위에 놓으면 "dailySchedule"이 작동을 멈추고 "rightadmin"이 작동하기 시작합니다. –

0

페이지에 id = dailySchedule 인 요소가 표시되지 않습니다. 해당 ID를 가진 요소가 페이지에없는 경우 오류가 발생합니다. 브라우저 콘솔에서 javascript 오류를 확인하십시오.

1

범위 문제로 인한 것 일 수도 있습니다 - 변수 wrapHeight은 두 블록에 국한되어 있습니다.

가 결과에 영향을주지해야하지만,이 코드는 세 번째 변수에 할당하는 더 우아한 방법입니다 : 모든 다른 사람으로

var dheight = $(document).height(); 
var wheight = $(window).height(); 
var wrapHeight = (dheight > wheight) ? dheight : wheight; 

이미 말했다, 뭔가 다른 문제입니다.

+0

그건 JavaScript가 작동하는 방식이 아닙니다. 블록은 변수를 범위 지정하지 않고 함수 만 수행합니다. – Pointy

+0

게시하기 전에 당신이 옳습니다. [확인 했어야합니다] (http://jsfiddle.net/WWcnL/). –

0

당신은 <body onload='height()'>라고 말하고 문서가 준비되어 있는지 확인하지 않고 아마도 id가 rightadmin 인 div가 없을 것입니다 ... jQuery로 변환하여 다음과 같이 수행하여 onload 속성을 삭제하십시오.

$ (문서) .ready (함수() {여기

// 코드

} 내가 지금 사용하고

+0

html 코드를 보면 "rightAdmin"이 3 번째 블록의 ID임을 알 수 있습니다. –

+0

네, 보았습니다.하지만 문서가 아직로드가 끝나지 않았다면 ID가 rightadmin이지만 div가 없을 수도 있습니다. 웹 페이지가로드되는 동안 onload가 호출되기 때문에 페이지가 불완전해질 수 있습니다. onready 같은 게 없니? 왜냐하면 나는 그가 일할 것이라고 생각하기 때문에 당신은 onload로 onload를 대체합니다. – 11684

0

다음 코드. 그것은 모든 것을 잘 작동합니다.

$(function(){ 
    var dheight= ($(document).height()); 
    var wheight= ($(window).height()); 
    var wrapHeight = (dheight > wheight) ? dheight : wheight; 
    $('.dailySchedule').css({ "min-height": wrapHeight + 'px' }); 
    $('.iframeArea').css({ "min-height": wrapHeight + 'px' }); 
$('.btnRight').css({ "min-height": wrapHeight + 'px' }); 

}); 

주셔서 감사합니다 answeri

+0

그러면 답을 받아 들여야합니다 :) – NeeL

관련 문제