JS元素的onclick事件没有被触发

JS element onclick event not being fired

我有一个 元素,我使用 dom 选择了它。我有以下代码:

var link = document.createElement("a");
var ce = function (e) {
   alert("A");
}
link.onclick = ce; // Or link.addEventListener("click", ce);
console.log(ce);
console.log(link.onlick);

在控制台(chrome 开发工具)中,我看到以下内容:

function (e) { alert("A"); }

然后

undefined

单击元素后,事件不会触发。我注意到将 onclick 应用于控制台中的同一元素,但是,确实 正确地应用了该事件。

如何申请此活动?

在绑定onclick事件之前,您需要将您创建的link添加到DOM。

执行此操作后,您将不会再为 onclick 事件的日志获取 undefined。

var link = document.createElement("a");
var ce = function (e) {
    alert("A");
}
// Add link to page 
document.body.appendChild(link);
link.onclick = ce; // Or link.addEventListener("click", ce);
console.log(ce);
console.log(link.onclick);

事实上,这个问题是由一个错字引起的,因为你有:

console.log(link.onlick);// onlick !!

而不是:

console.log(link.onclick);

完整代码如下:

var link = document.createElement("a");
      var ce = function (e) {
        alert("A");
      }
link.onclick = ce; // Or link.addEventListener("click", ce);
link.text="Click me!!";
document.body.appendChild(link);
console.log(link.onclick);// here you will get function (e) { alert("A"); }

现在可以正常使用了,here's a DEMO