2014-01-06 96 views
0

我是JavaScript新手,目前正在学习有事件处理的DOM基础知识。 这是我的HTML代码: -使用JavaScript处理事件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> 
<head> 
<title>My Test Program for Event Handler</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 
<body> 
<p>The first captain of the USS Enterprise NCC-1701 was 
<a id="t1" href="http://en.wikipedia.org/">My Link!</a>.</p> 
<script type="text/javascript" src="example.js"></script> 
</body> 
</html> 

而且,这是我的Jscript: -

var StrayClickCatcher = { 
    init: function() { 
     var links = document.getElementsByTagName("a"); 
     if (typeof document.addEventListener != "undefined") { 
      document.addEventListener("click", StrayClickCatcher.strayClickListener, false); 
      for (var i = 0; i < links.length; i++) { 
       links[i].addEventListener("click", StrayClickCatcher.linkClickListener, false); 
      } 
     } else if (typeof document.attachEvent != "undefined") { 
      document.attachEvent("onClick", StrayClickCatcher.strayClickListener); 
      for (var i = 0; i < links.length; i++) { 
       links[i].attachEvent("onClick", StrayClickCatcher.linkClickListener); 
      } 
     } 
    }, 
    strayClickListener: function (event) { 
     alert("Did you mean to click a link? " + "It's that blue, underlined text."); 
    }, 
    linkClickListener: function (event) { 
     if (typeof event == "undefined") { 
      event = window.event; 
     } 
     if (typeof event.stopPropagation != "undefined") { 
      event.stopPropagation(); 
     } else { 
      event.cancelBubble = true; 
     } 
    } 
}; 

我想显示的提示信息时,用户不点击链接。但是,它不工作。我错过了什么吗?如果调用

StrayClickCatcher.init(); 

在你的js代码年底

+3

为了上帝的爱,正确缩进代码。这是一个难以理解的混乱。 – casraf

+0

你从某处调用过StrayClickCatcher.init()吗? – sedran

回答