window.addEventListener不工作但window.onhashchange工作?

时间:2016-11-10 01:33:53

标签: javascript

length' :: [[a]] -> [Int]
length' = map length

为什么我无法使用window.addEventListener("hashchange",myFunction); console.log(window.onhashchange); //This one prints NULL window.onhashchange = myFunction; console.log(window.onhashchange); // This one working fine. function myFunction() { alert("The anchor part has changed!"); } 方法附加事件侦听器?但是addEventListener正常工作

编辑我确实使用'hashchange'而不是'onhashchange'这是一个错字。

1 个答案:

答案 0 :(得分:4)

没有onhashchange事件。 一个hashchange事件:

window.addEventListener('hashchange', myFunction, false);

同样,没有onclick事件,但 click事件:

element.addEventListener('click', someFunction, false);

测试绑定事件的on*属性不是验证绑定回调的适当方法。对于测试,您必须以某种方式触发事件并在回调中进行测试:

window.onhashchange = function () {
  console.log('onhashchange property works');
};

window.addEventListener('hashchange', function () {
  console.log('addEventListener method works');
}, false);
<a href="#example">Click this to test</a>

成功绑定回调不会通过属性公开。