2010-02-25 3 views
0

J'ai un script où Im essayant d'ajouter un eventlistener à un lien, et il surveille quand un utilisateur clique sur le lien. lorsque le lien est cliqué, il appelle la fonction 'salut'. J'ai des problèmes parce que la fonction «Salut» est appelée même lorsque le lien n'est pas cliqué. même résultat sur IE et FF. Heres mon code peut-être quelqu'un peut aider:javascript eventlistener problème

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; 

Répondre

5

Vous appelez la fonction de salut lui-même dans le attachEvent et appelle addEventListener. Changez-être:

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

Le paramètre attend une référence à une fonction, alors que le passant hi(9) passe le résultat d'appeler la fonction salut

0

Encore une méthode de faire en est fonction wat1() {

object1 = document.getElementById("watlol"); 

try 
{ 

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