不能在onclick事件(JS)上向元素插入函数

Can't insert a function to a element on onclick event (JS)

本文关键字:元素 插入 函数 JS onclick 事件 不能      更新时间:2023-09-26

这段代码有问题:

    var xButton = document.createElement("a");
    xButton.className = "cXButton";
    xButton.href = "#";
    xButton.onclick = "closePanel()";
    xButton.innerHTML = "X";

而"closePanel()"是我已经写过的函数。我使用Firebug,发现"onclick"属性没有出现在标记中。我看到一些线程,而不是函数的名称,有它的实现(function closePanel(){…})。这不是我要找的。

有什么建议可以解决吗?

你的原始代码有两个问题:

  • "closePanel()"为字符串。
  • closePanel()尝试(或者如果它不是字符串)调用函数并将其输出分配给xButton.onclick

应该是这样:

xButton.onClick = closePanel;

这将给xButton.onClick分配一个对函数closePanel()的引用,当xButton.onClick事件被触发时调用closePanel()

请记住,您可以在closePanel()的声明中使用this来引用所单击的元素。