2010-11-19 5 views
1

페이지가로드되면 호출되는 함수를 변경하고 나중에 사용자가 ID가있는 특정 div를 클릭 할 때 도움이 필요합니다. ...onload 및 onclick 페이지에서 Javascript 함수 호출?

window.onload=function() { 
//Do your stuff, JS! 
} 

예, 거의 모든 JS을 알고

편집 : 나는 그것을 자신을하지 않았다 (내 JS 기능을 포함, 분명 또 다른 좋은 똑똑한 사람을 지금까지 나는이 있습니다 그랬어 : P)

function() { 
    var maxHeight = 0; 
    //get the column containers 
    var colsA = document.getElementById("Content").childNodes; 

    //get the height of the tallest column 
    for(var i=0; i < colsA.length; i=i+1) { 
     if(colsA[i].clientHeight > maxHeight) maxHeight = colsA[i].clientHeight; 
    } 

//set all the column containers heights to maxHeight 
    for(var i=0; i < colsA.length; i=i+1) { 
     if(colsA[i].nodeType == 1) colsA[i].style.height = maxHeight+'px'; 
    } 
} 

그것은 무엇을합니까 : 나는 x 열 div 수를 저장하는 div 컨테이너가 있습니다. 이 열은 내용 때문에 높이가 다릅니다. 이 함수는 모든 divs 높이를 동일하게 만듭니다.

내 페이지가로드되면이 코드가 완벽하게 실행됩니다. 그러나 나중에, 그것은하지 않습니다. 추가 정보를 저장할 수있는 축소 가능한 div가 있습니다. 사용자가 클릭하면 높이가 더 밀려납니다. 이것은 id에 대한 onclick을 생각한 이유입니다 ... 불행히도 id는 PHP에 의해 동적으로 생성됩니다.

답변

7

당신은 별도로 함수를 정의하고 여러 이벤트 핸들러에 바인딩 할 수 있습니다

function myHandler(){...} 
window.onload = myHandler; 
myElement.onclick= myHandler; 
... 
1

이이 문제를 해결해야합니다

function f() { 
    // do your stuff 
} 

window.onload = f; 
document.getElementById("myButton").onclick = f; 
+0

요소 ID가 동적으로 생성되면 어떻게됩니까? 나는 총을 썼다. 그러나 일하지 않았다. 실제 기능으로 게시물을 편집 할 수 있습니다. – stockoverflow

+0

그래서 myButton = CollapsiblePanel 이런 식으로. – stockoverflow

+0

@stockoverflow : 글쎄, 어떻게 든 요소에 대한 참조를 얻어야 만합니다 ... –

0

또 다른 방법 : 입력

window.onload=function() { 
//Do your stuff, JS! 
} 

yourElement.onclick = window.onload; 

을 끝내면 어떻게하는지 상관 없습니다. 함수는 퍼스트 클래스 객체이므로 함수에 대한 참조 만 있으면됩니다.


JavaScript에 대해 자세히 알아 보려면 MDC JavaScript Guide을 참조하십시오.