另外,如果你说的addEventListener 如果是JavaScript内置函数的话ie不支持需要使用attachevent,而使用匿名函数则可以解决一切兼容问题:
$(id).onclick=function(){};....虽然这个方法古老但是兼容性非常好
onkeypress 只有在产生可打印字符时才会发生,且你写的代码不兼容IE低版本用 keydown 事件,因为 keydown 与 keypress 相比能捕捉更多按键(当然,我不太清楚题主你的需求,keypress 也有比 keydown 优异的地方)。测试如下:
document.querySelector('body').addEventListener('keydown', function(e) {
alert(e.which)
}, false)
上述代码依然可以在谷歌输入框中捕获到键盘事件。
js使onclick事件无效的方法很简单,只需要选中这个元素,然后让它的onclick赋值为null即可。
1、这是针对此问题的测试页面
全部代码如下
<button onclick="alert('上面按钮点击')" id="btn" >点击有警告</button>
<br><br>
<button onclick="document.getElementById('btn').onclick=nullalert('成功使上面按钮点击失效!')">使上面按钮点击事件失效</button>
其中最关键的是这句document.getElementById('btn').onclick=null
2、如图,这是测试点击上面的按钮弹出的警告
3、点击下面按钮,提示上面的按钮点击失效
4、再次点击上面的按钮没有弹出效果了