繁体   English   中英

在onclick事件中将参数传递给函数

[英]Passing parameters to a function in an onclick event

我正在尝试动态构建一些HTML并将功能分配给链接的onclick事件。 这是我得到的代码...

link = document.createElement("a");
link.setAttribute("href", "#");
link.onclick = function(){someFunction(myObject.id);};
link.appendChild(document.createTextNode("Click Me!"));

我的研究表明,我像过去一样将函数调用包装在匿名函数中。 不过,我发现的是,当脚本的这一部分运行而不是在click事件上运行时,我的函数便被调用。 这似乎是一个普遍的问题,但我会遵循我到目前为止发现的所有建议,但是没有用。

非常感谢任何帮助或指示。

B先生

也许尝试以下替代方法:

function someFunction(id) {
    return function() {
        alert(id);
    };
}

link = document.createElement("a");
link.setAttribute("href", "#");
link.onclick = someFunction(myObject.id);
link.appendChild(document.createTextNode("Click Me!"));

您发布的代码可以正常工作-我刚刚对其进行了测试。 这里有一些寻找的可能性。

  1. 您在哪里定义了someFunction? 是否需要定义?
  2. 您是否在其他地方引用了someFunction? 也许这就是引发问题的原因。
  3. 您不使用jQuery之类的JavaScript库的任何原因是什么? 简化很多。

一种调试方法是将该行更改为:

link.onclick = function(){alert('test'); someFunction(myObject.id);};

警报弹出吗? 我的猜测不是,建议上面的#1和#2。 随时发布更多代码,我们可以在其他地方查找错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM