2012-05-08 88 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。

任何帮助将不胜感激。谢谢..

回答

3

如果您正在使用jQuery,为什么不利用呢?这需要照顾跨浏览器问题

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

虽然jQuery并没有处理语法错误......但是清楚地将函数的返回值作为回调函数不是要走的路 –

+0

@EliasVanOotegem虽然在一个匿名函数中包装函数调用会照顾到这一点。 –

+0

是的,但这有点矫枉过正,不是吗?创建一个匿名回调,因为它只是调用一个函数,而不是击败回调点,在我看来:P –

3

你需要传递函数处理,而不是函数调用onclick属性:

checkbox.onclick = testClick; 
+0

谢谢,这是工作(意味着我现在没有在IE8中的任何错误),但在testClick方法我有一个警报,在IE9但未在IE8罚款。 –

+0

我已经为你制作了jsFiddle演示http://jsfiddle.net/5yq6X/在IE8中试用这个 – antyrat

相关问题