将onclick事件分配给全局变量 - javascript

时间:2013-02-08 06:40:44

标签: javascript variables global-variables

我有很多与“mypoll”课程的div。这是我的js代码:

var mypoll=[];

$(document).ready(function (){      
    mypoll=document.getElementsByClassName("mypoll");
});

for(var t=0; t<mypoll.length; t++) {
    mypoll[t].getElementsByClassName("deletePoll")[0].onclick=(function() {
        var currentI = t;
        return function() { 
            deletedMyPoll(currentI);
        };
    })();
}
function deletedMyPoll(i){
    var a=document.getElementsByClassName("mypoll")[0].innerHTML;
    alert(a);
}

我得到的错误是

cannot set property onclick of undefined. 

我的项目中有完全相同的代码(它很大而且复杂,我不能在这里发布)但它不起作用。

虽然它适用于jsfiddle。

javascript中的全局变量有问题吗?我可以这样使用吗?

jsfiddle.net/Vwtmu

谢谢

2 个答案:

答案 0 :(得分:1)

如果你打算使用jQuery,你也可以使用它:

$(".mypoll").on('click', '.deletePoll', function () {

});

答案 1 :(得分:0)

for循环在dom准备好之前运行。

$(document).ready(function (){      
    mypoll=document.getElementsByClassName("mypoll");

    for(var t=0; t<mypoll.length; t++) {
        mypoll[t].getElementsByClassName("deletePoll")[0].onclick=(function() {
            var currentI = t;
            return function() { 
                deletedMyPoll(currentI);
            };
        })();
    }

});