日期:2014-05-16  浏览次数:20381 次

js的两种写法为什么第一种写法无效?
本帖最后由 u013346337 于 2014-01-01 01:01:28 编辑
html:
<a href="http://www.baidu.com" id="link">百度</a>

js:
function addEvent(obj, type, fn) {
  if (typeof addEventListener != 'undefined') {
    addEventListener(type, fn, false);
  } else if (typeof attachEvent != 'undefined') {
    attachEvent('on' + type, fn);
  }
}

addEvent(window, 'load', function(){
  var link = document.getElementsByTagName('a')[0];
  addEvent(link, 'click', function(){
    return false;
  });
});
//能正常进入百度


而如果是:

addEvent(window, 'load', function(){
  var link = document.getElementsByTagName('a')[0];
  link.onclick = function() {
    return false;
  };
});
//这样点击无效,进不了百度页面了,麻烦哪位请告诉我下原因啊,谢谢?




------解决方案--------------------
obj没有用到哟

function addEvent(obj, type, fn) {
  if (typeof obj.addEventListener != 'undefined') {
    obj.addEventListener(type, fn, false);
  } else if (typeof obj.attachEvent != 'undefined') {
    obj.attachEvent('on' + type, fn);
  }
}


------解决方案--------------------
有,没他快。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>




<div id='g'>ggg</div>

<script>
function $(id){
return document.getElementById(id);
}
function addEvent(obj, type, fn) {
  if (typeof addEventListener != 'undefined') {
    obj.addEventListener(type, fn, false);
  } else if (typeof attachEvent != 'undefined') {
    obj.attachEvent('on' + type, fn);
  }
}
 
addEvent(window, 'load', function(){
 $('g').onclick = function(){
  alert('因为我,一开始就存在的,在前面');
  }
  addEvent($('g