JS元素onclick事件没有被触发

时间:2015-01-08 15:35:59

标签: javascript html dom

我有一个< a>我使用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 dev工具)中,我看到以下内容:

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

然后

undefined

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

如何申请此活动?

2 个答案:

答案 0 :(得分:1)

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

执行此操作后,您将不再对onclick事件的日志进行未定义。

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);

答案 1 :(得分:1)

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

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