Javascript EventListener проблема - PullRequest
       6

Javascript EventListener проблема

0 голосов
/ 26 февраля 2010

У меня есть скрипт, в котором я пытаюсь добавить список событий в ссылку, и он отслеживает, когда пользователь нажимает на ссылку. когда ссылка нажата, она вызывает функцию «привет». У меня возникли проблемы, потому что функция '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 ]

5 голосов
/ 26 февраля 2010

Вы вызываете саму функцию hi в вызовах 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) передает результат вызова функции hi

0 голосов
/ 13 февраля 2013

Еще один способ сделать то же самое функция wat1 () {

object1 = document.getElementById("watlol");

try 
 {

  object1.onclick  = function() 
   {
                                 hi(9);
   };
}
catch(e) 
 {
  object1.onclick  = function() 
   {
                                 hi(9);
    };
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...