Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 复选框onclick在IE8中不起作用,但在IE9中起作用_Javascript_Jquery - Fatal编程技术网

Javascript 复选框onclick在IE8中不起作用,但在IE9中起作用

Javascript 复选框onclick在IE8中不起作用,但在IE9中起作用,javascript,jquery,Javascript,Jquery,我正在创建动态复选框并用它附加onclick事件。代码如下: 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 = 'check

我正在创建动态复选框并用它附加onclick事件。代码如下:

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上运行不好。我正在使用jquery1.7.1


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

您需要将函数处理程序而不是函数调用传递给
onclick
属性:

checkbox.onclick = testClick;

您需要向
onclick
属性传递函数处理程序,而不是函数调用:

checkbox.onclick = testClick;

如果您正在使用jQuery,为什么不使用它呢?这将解决跨浏览器问题

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

如果您正在使用jQuery,为什么不使用它呢?这将解决跨浏览器问题

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

但是jQuery不处理语法错误。。。显然,将函数的返回值绑定为回调函数并不是go@EliasVanOotegem不过,在匿名函数中封装函数调用会解决这个问题。没错,但这有点过分了,不是吗?在我看来,创建一个匿名回调是因为它只调用一个函数,而不需要回调:P@EliasVanOotegem基本上是一样的。您还创建了一个回调函数。如果您仍然使用jQuery,我建议您将代码重写为jQuery。我知道您在按照自己的方式创建回调。看来我完全错了。我只是想做一点旁注。。。我喜欢在我的实际回调函数体中使用
this.someProperty
,这是不可能的,除非像这样调用函数:
testClick.call(this)。但是,这不仅仅是输入函数名。。。在编程中,懒惰是可以的,尽管jQuery不处理语法错误。。。显然,将函数的返回值绑定为回调函数并不是go@EliasVanOotegem不过,在匿名函数中封装函数调用会解决这个问题。没错,但这有点过分了,不是吗?在我看来,创建一个匿名回调是因为它只调用一个函数,而不需要回调:P@EliasVanOotegem基本上是一样的。您还创建了一个回调函数。如果您仍然使用jQuery,我建议您将代码重写为jQuery。我知道您在按照自己的方式创建回调。看来我完全错了。我只是想做一点旁注。。。我喜欢在我的实际回调函数体中使用
this.someProperty
,这是不可能的,除非像这样调用函数:
testClick.call(this)。但是,这不仅仅是输入函数名。。。在编程中,懒惰是可以的。谢谢,这是可行的(意味着我现在在IE8中没有收到任何错误),但在testClick方法中,我有一个警报,在IE9中很好,但在IE8中没有。谢谢,这是可行的(意味着我现在在IE8中没有收到任何错误)但是在testClick方法中,我有一个警报,它在IE9中很好,但在IE8中没有。