Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FOR循环后的事件处理程序_Javascript_For Loop_Event Handling - Fatal编程技术网

Javascript FOR循环后的事件处理程序

Javascript FOR循环后的事件处理程序,javascript,for-loop,event-handling,Javascript,For Loop,Event Handling,问题: if (playerStatus == "active"){ //GET MESSAGES var Message = Parse.Object.extend("Messages"); var query = new Parse.Query(Message); query.equalTo("Game", g

问题:

            if (playerStatus == "active"){
                    //GET MESSAGES
                    var Message = Parse.Object.extend("Messages");
                    var query = new Parse.Query(Message);
                    query.equalTo("Game", gameJSON);
                    query.ascending("createdAt");
                    query.find().then(function(results) {
                        for (var i = 0; i < results.length; i++) {
                            messagesIds.push(results[i].id);
                            messages.push(results[i].get("Message"));
                            votes.push(results[i].get("Votes"));
                        }
                        console.log(results);
                    //DISPLAY MESSAGES          
                        var text = "<ul>";
                        for (i = 0; i < messages.length; i++) {
                            text += "<li class='messageContainer' id='" + messagesIds[i] + "_container " + "' value='" + messagesIds[i] + "'>";
                            text += "<div class='voteContainer' id='vote_" + messagesIds[i] + "' value='" + messagesIds[i] +"'>" + votes[i] + "</div></div>";
                            text += "</li>";    
                        }
                        text += "</ul>";
                        //Ammend HTML
                        document.getElementById("messagesContainer").innerHTML = text;
                    //VOTING [not working]
                        for (i = 0; i < messages.length; i++) {
                $('#vote_' + messagesIds[i]).on('click',function() {
                                var votingOn = $(this).val();
                            console.log(this);
                                var Messages = Parse.Object.extend("Messages");
                                var query = new Parse.Query(Messages);
                                query.get(votingOn).then(function(results){
                                    results.increment("Votes");
                                    results.save();
                                    console.log("Voted");
                                }, function(error) {
                                    console.log("Voting Error: " + error.message);
                                }
                                })
                        }   
                    })  //end function(results)
                };  //end if player = active clause
我无法正确执行事件处理程序
$(“#投票+messagesIds[I])。请单击(函数()
。单击圆圈时,事件处理程序将运行,但结果是
错误。消息
返回
“未找到对象”

问题是,
votingOn
未定义的
,因为无法获取
的值。但是,
控制台.log(this);
正确显示
id

处理程序引用上面在
文本
的第三行上创建的一个圆圈。事件处理程序位于
函数(结果)
的内部,其中
消息SID
被声明并发生在
FOR
循环之后,该循环修改HTML以显示按钮

请帮忙

代码:

            if (playerStatus == "active"){
                    //GET MESSAGES
                    var Message = Parse.Object.extend("Messages");
                    var query = new Parse.Query(Message);
                    query.equalTo("Game", gameJSON);
                    query.ascending("createdAt");
                    query.find().then(function(results) {
                        for (var i = 0; i < results.length; i++) {
                            messagesIds.push(results[i].id);
                            messages.push(results[i].get("Message"));
                            votes.push(results[i].get("Votes"));
                        }
                        console.log(results);
                    //DISPLAY MESSAGES          
                        var text = "<ul>";
                        for (i = 0; i < messages.length; i++) {
                            text += "<li class='messageContainer' id='" + messagesIds[i] + "_container " + "' value='" + messagesIds[i] + "'>";
                            text += "<div class='voteContainer' id='vote_" + messagesIds[i] + "' value='" + messagesIds[i] +"'>" + votes[i] + "</div></div>";
                            text += "</li>";    
                        }
                        text += "</ul>";
                        //Ammend HTML
                        document.getElementById("messagesContainer").innerHTML = text;
                    //VOTING [not working]
                        for (i = 0; i < messages.length; i++) {
                $('#vote_' + messagesIds[i]).on('click',function() {
                                var votingOn = $(this).val();
                            console.log(this);
                                var Messages = Parse.Object.extend("Messages");
                                var query = new Parse.Query(Messages);
                                query.get(votingOn).then(function(results){
                                    results.increment("Votes");
                                    results.save();
                                    console.log("Voted");
                                }, function(error) {
                                    console.log("Voting Error: " + error.message);
                                }
                                })
                        }   
                    })  //end function(results)
                };  //end if player = active clause
if(playerStatus==“活动”){
//获取消息
var Message=Parse.Object.extend(“消息”);
var query=newparse.query(消息);
query.equalTo(“游戏”,gameJSON);
升序查询(“createdAt”);
query.find().then(函数(结果){
对于(var i=0;i”;
对于(i=0;i
这是$(这)一个输入吗?没有控制台错误,但是
错误。消息
(反映处理请求时Parse.com的错误)发回
投票错误:找不到对象
。此错误与
查询.get(votingOn)中未定义的
投票有关
。若要动态绑定事件,您需要执行以下操作:$('#vote_'+messagesIds[i])。在('click',function(){})@SuchitKumar上,尝试了该操作,但没有导致任何更改。请参阅此帖子: