在javascript中设置onclick无效

时间:2015-05-27 20:51:25

标签: javascript html

所以我正在编写一些与Facebook API一起使用的功能。我之前设置了onclick属性,通过取父母并说出parent.innerHTML += "<a onclick = 'test("+parameter+")'>Previous</a>"的内容并且工作正常。但是我想让它更安全,更符合标准,所以它的风格如下:

function myMethod(link){
    ...
    FB.api(link, function(response){
        ...
        if(value != null){
            var prev = document.createElement("a");
            prev.innerText = "previous";
            prev.setAttribute("id", "previous");
            //prev.onclick = function(){test(this);}; doesn't work here
            document.getElementById("facebook-photos").appendChild(prev);
        }
        //some other code (loops and stuff) including this 
        for(...){
           var container = document.createElement("div");
           container.classList.add("container");
           container.classList.add("thing");
           container.onclick = function(){test(this);}; // works here
        }
        //

        if(document.getElementById("previous")){
            document.getElementById("previous").onclick = function(){test(this);}; //works here   
        }
    }
}

由于某种原因,每当我尝试使用它时,单击该元素什么也不做。检查元素显示没有&#34; onclick&#34;字段但在控制台中显示元素显示onclick字段不为null。没有任何东西覆盖元素,我已经尝试过它作为div和按钮。当我尝试先做document.getElementById(&#34;之前的#34;)时,它仍然无法正常工作。 为什么会这样?它只是Javascript的异步性质吗?中间的赋值虽然在元素创建后相对较快,但在开头的那个却没有。

0 个答案:

没有答案