动态使用时,Javascript onClick()事件无效

时间:2016-04-22 01:12:38

标签: javascript html css onclick

我努力让onclick事件监听器在我的结果中发挥作用。 这是我的代码:

function createLink(text, parentElement) {
        var a = document.createElement('p');
        var linkText = document.createTextNode(text);
        a.appendChild(linkText);
        temp1 = text.replace("/","-");
        temp2 = res1.replace("/","-");
        a.onclick=function(){goMainMenuFromResults();};
        parentElement.appendChild(a);
        var br = document.createElement('br');
        parentElement.appendChild(br);
}

有问题的一行是:

a.onclick=function(){goMainMenuFromResults();};

该功能存在于另一部分,但适用于硬编码的html事件。当我在javascript中导入元素时,我无法使其工作。 任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

詹姆斯,它似乎工作正常,只是一个名为res1的var在这里得到错误。看看:

temp2 = res1.replace("/","-");

http://jsfiddle.net/MarcelKohls/23tBM/291/

答案 1 :(得分:0)

我删除了包含未定义变量的行。然后我在事件处理程序内引发的事件上添加了对preventDefault()的调用。它现在工作正常。创建了新元素,点击处理程序适用于新元素。

function createLink(text, parentElement) {
    var a = document.createElement('p');
    var linkText = document.createTextNode(text);
    a.appendChild(linkText);
    //temp1 = text.replace("/","-");
    //temp2 = res1.replace("/","-");
    a.onclick = function(e) {
        e.preventDefault();
        goMainMenuFromResults();
    };
    parentElement.appendChild(a);
    var br = document.createElement('br');
    parentElement.appendChild(br);
}