3

我有下面说明的javascript。我需要执行一些函数而不是 alert(),但它不起作用...我需要包含document.getElementById("").innerHTML=""函数。我在 js 方面不是很有经验,如果有人能解释如何做到这一点以及问题出在哪里,我将非常感激。

window.onload = function locationHashChanged() {
    var hashx = location.hash;
    switch (hashx) {
       case '#basketball':
           alert('1');
           break;
       case '#football':
           alert('2');
           break;
       default:
           alert('3');
    }
    window.onhashchange = locationHashChanged;
}
4

2 回答 2

1

不要将函数名称添加到window.onload.

您需要分配一个anonymous function,例如

window.onload = function(){
  // stuff
}
于 2013-03-17T22:20:56.453 回答
1

这里最可能的问题是您在加载事件发生window.onload 之后进行定义,这意味着您的处理程序没有被调用。无论是那个,还是其他一些代码正在覆盖您的处理程序。

不需要等到window's load 事件来添加hashChange事件处理程序,所以只需使用:

window.onhashchange = function() {
    var hashx = location.hash;
    switch (hashx) {
       case '#basketball':
           alert('1');
           break;
       case '#football':
           alert('2');
           break;
       default:
           alert('3');
}
于 2013-03-17T22:33:32.363 回答