2012-05-19 1 views
1

내가 프로그래밍 약간의 HTML에 dijit.form.Button를 삽입하기 위해 노력하고있어에 autoclicking 계속 내 코드는 다음과 같이 진행됩니다새로운 dijit.form.Button는 선언

row.innerHTML = '<td>Name:</td><td id="showname" />'; 
var showButton = new dijit.form.Button({ 
    label: "Show name", 
    style: "float: right", 
    onClick: show_name(), 
}, "showname") 

는 그러나 때마다 내가 새로 고침 및 업데이트 페이지에서 자동으로 show_name()을 실행합니다. 이것은 원하는 것이 아닙니다. 아무도 내게 왜 이런 일이 일어나는 지에 대한 통찰력을 줄 수 있고 어떻게 고칠 수 있도록 show_name()은 버튼을 클릭했을 때만 실행될 수 있습니까?

감사합니다.

+1

'show_name' 또는'function() {show_name(); }'Javascript는 신비한 방식으로 작동합니다. –

+0

답변으로 게시, 그 덕분에 많은 – jayjyli

답변

2

show_name 또는 function() { show_name(); }으로 시도하십시오.

제 설명은 함수 호출이 아니라 함수 참조가 필요하다는 것입니다. 반환 값 (아마도 아무 것도 없음)을 onClick으로 다시 전달합니다. 첫 번째 옵션은 전달 된 인수가 없을 때 작동하며 두 번째 옵션에서는 아무것도 전달할 수 없습니다. show_name().

+0

그래, 그 중 하나를 선택 근무. JS는 매개 변수 정의가 아닌 함수 호출처럼 취급하고있는 것으로 나타났습니다. 고마워요! – jayjyli

+0

여러분을 환영합니다! 도와 줘서 다행 :) –