javascript eventlistener问题

时间:2010-02-25 22:59:12

标签: javascript events

我有一个脚本,我试图将eventlistener添加到链接,并在用户点击链接时查看。当链接被点击时,它会调用函数'hi'。因为即使没有点击链接也会调用'hi'功能,因此我遇到了麻烦。 IE和FF上的结果相同。继承我的代码也许有人可以提供帮助:

function hi(id) {   
var xmlhttp = new XMLHttpRequest();
urlwat = "wat.php?id="+id;
xmlhttp.open("POST",urlwat,true);
xmlhttp.send(null);
}

function wat1() {
    object1 = document.getElementById("watlol");
    try {
      object1.attachEvent("click",hi(9));
    }
    catch(e) {
      object1.addEventListener("click",hi(9),false);
    }
}
window.onload = wat1;

2 个答案:

答案 0 :(得分:5)

您在attachEvent和addEventListener调用中调用hi函数本身。将其更改为:

function wat1() {
    object1 = document.getElementById("watlol");
    try {
      object1.attachEvent("click", function() { hi(9); });
    }
    catch(e) {
      object1.addEventListener("click",function() { hi(9); },false);
    }
}

参数需要引用到函数,而传递它hi(9)传递调用函数的结果

答案 1 :(得分:0)

另一种做法是 function wat1(){

object1 = document.getElementById("watlol");

try 
 {

  object1.onclick  = function() 
   {
                                 hi(9);
   };
}
catch(e) 
 {
  object1.onclick  = function() 
   {
                                 hi(9);
    };
   }
}