Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript事件侦听器问题_Javascript_Events - Fatal编程技术网

javascript事件侦听器问题

javascript事件侦听器问题,javascript,events,Javascript,Events,我有一个脚本,我试图在其中添加一个eventlistener到一个链接,它监视用户何时单击该链接。当点击链接时,它调用函数“hi”。我遇到了麻烦,因为函数“hi”即使在没有点击链接的情况下也会被调用。IE和FF的结果相同。这是我的代码,也许有人能帮上忙: function hi(id) { var xmlhttp = new XMLHttpRequest(); urlwat = "wat.php?id="+id; xmlhttp.open("POST",urlwat,true); xmlh

我有一个脚本,我试图在其中添加一个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;

您正在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的结果。

您在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);
    }
}

该参数需要对函数的引用,而传递它是传递调用函数的结果 函数wat1(){


还有一种方法是 函数wat1(){