1

我有 Div 元素,我将其 onClick 事件设置为 null,就像这样。

child.onclick = null;

在这种情况下,child 是一个 dom 元素,表示该 DIV 元素。

现在onclick事件已经不存在了,现在我想像这样再次拥有它。

child.onclick = new Function();

但这种方式行不通。我只想拥有设置为空之前的 onclick 行为。

任何人都可以帮忙吗?

谢谢,迪尔。

4

3 回答 3

2

我建议使用addEventListenerand removeEventListener

function handler(e){

}

添加监听器:

child.addEventListener('click', handler);

去除:

child.removeEventListener('click', handler);

注意正如马克沃尔特斯所说,使用attachEventand detachEventfor IE < 9

于 2013-06-19T11:17:13.703 回答
2
// save reference to the old callback function
var oldOnclickFn = child.onclick;

// set onclick to null
child.onclick = null;


// set the onclick to the function that was there before.
child.onclick = oldOnclickFn;

但是,您可能应该查看addEventListener

于 2013-06-19T11:17:27.543 回答
0

像这样:

document.getElementById('clickme').onclick = function(){ alert('clicked'); };

http://jsfiddle.net/pJa9W/

于 2013-06-19T11:16:47.597 回答