2010-02-25 78 views
0

我有一个脚本,我试图添加一个eventlistener到一个链接,并监视当用户点击链接。当链接被点击时,它会调用函数'hi'。即时通讯有问题,因为即使链接没有被点击,函数“hi”被调用。 IE和FF的结果相同。继承人我的代码也许有人可以帮助:javascript eventlistener问题

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; 

回答

5

你调用的attachEvent内喜函数本身使用addEventListener调用。改变它是:

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

参数期望一个参考于函数时,而传递给它hi(9)正在通过调用该函数。在这样做同样是 的

0

还有一个方法的结果函数wat1(){

object1 = document.getElementById("watlol"); 

try 
{ 

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