2012-05-08 3 views
0

동적 체크 박스를 만들고 onclick 이벤트를 첨부하고 있습니다. 아래 코드는 다음과 같습니다.체크 박스 onclick은 IE8에서는 작동하지 않지만 IE9에서는 작동합니다.

var table = document.getElementById(tableID); 
var rowCount = table.rows.length; 
var row = table.insertRow(rowCount); 

var cell1 = row.insertCell(0); 
var checkbox = document.createElement("input"); 
checkbox.type = 'checkbox'; 
checkbox.onclick = testClick(); 
cell1.appendChild(checkbox); 

function testClick() { 
      alert("Hello"); 
} 

위의 코드는 IE9에서는 잘 작동하지만 IE8에서는 정상적으로 작동하지 않습니다. Jquery 1.7.1을 사용하고 있습니다.

도움이 될 것입니다. 감사합니다 ..

당신은 onclick 특성에 전화를 작동하지 핸들러 함수를 전달해야

답변

3

, 왜 그것을 사용하지? 즉 크로스 브라우저의 관리가

$(domElement).click(function(){ 
    // do your thing here 
}); 
+0

jQuery는 구문 오류를 처리하지 않습니다 ... 분명히 콜백 함수로서 함수의 반환 값을 바인딩합니다. 이동 방법이 아닙니다 –

+0

@EliasVanOotegem 익명 함수로 함수 호출을 래핑하면 문제가 해결됩니다. –

+0

사실, 그렇지만 과장된 것 같지 않나요? 익명의 콜백을 생성하는 것은 단지 콜백의 포인트를 물리 치기 때문에 함수를 호출하기 때문입니다. P –

3

: 당신이 jQuery를 사용하는 경우

checkbox.onclick = testClick; 
+0

감사를 발행한다,이 노력하고 있지만 testClick 방법에 내가 IE8에서 IE9에서 잘 오는 것이 아니라 경고를 가지고 (지금 IE8에서 오류를받지 못했습니다 의미) . –

+0

나는 당신을 위해 jsFiddle 데모를 만들었습니다. http://jsfiddle.net/5yq6X/ IE8에서 이것을 시도하십시오. – antyrat

관련 문제