我有以下代码。即使我没有将函数设置为按钮的onclick属性,我也无法弄清楚为什么会出现click事件。
var x = 0;
var onclick = function() {
console.log("x = " + ++x);
};
<button type="button" onclick="">Click</button>
答案 0 :(得分:8)
您设置了全局变量onclick
,它转换为全局对象window
属性onclick
。这与您直接设置它基本相同:
window.onclick = function() {
console.log("x = " + ++x);
};
由于您已在整个window
对象上设置了点击事件,因此它不仅会在按钮点击时触发,而且会点击文档中的任何内容(除非事件传播停止)。
答案 1 :(得分:0)
正如@dfsq所提到的,当你window.onclick
时,你正在创建var onclick=
。类似的说明:
var onerror = function() {
console.log("ERROR HAPPENED!");
};
<button type="button" onclick="ThisFunctionIsNotDefined()">Click</button>