全局变量在第二次回调中变为未定义

时间:2012-12-05 17:38:59

标签: jquery

我在$(document).ready()之前声明了一些变量。这些变量存在于一个回调函数中,如果次数被调用x,但是在第一个回调函数之后我遇到了问题一些变量变得不确定。

    var file_count = 0;
    var permission_state = [ [] ];
    var rate_info = [ [] ];
    var is_rated = [];
    $(document).ready(function(){

    ...

    onComplete: function(id, fileName, responseJSON) {
        if($("input[name=voteit"+id+"]").prop("checked")){
            is_rated.push(1);
            rate_info[id].push($("#title-textarea"+id).val());
            rate_info[id].push($("select[name=category"+id+"]").val());
            rate_info[id].push($("select[name=subcategory"+id+"]").val());
        } else {
            is_rated.push(0);
            permission_state[id].push($(".permission-level"+id).val());
            permission_state[id].push($("#title-textarea"+id).val());
        }
    ...

控制台给了我:

“'onValidate'回调中的捕获异常 - TypeError:permission_state [id]未定义”

在这种情况下,

id是一个整数,它在回调函数的每次迭代中递增,并且我检查它是否正常工作。另外,为什么控制台没有说任何关于is_rated变量的信息是未定义的,只有rate_info或permission_state?

编辑:感谢我的建议:

        onComplete: function(id, fileName, responseJSON) {
        if($("input[name=voteit"+id+"]").prop("checked")){
            rate_info[id] = [];
            is_rated.push(1);
            rate_info[id].push($("#title-textarea"+id).val());
            rate_info[id].push($("select[name=category"+id+"]").val());
            rate_info[id].push($("select[name=subcategory"+id+"]").val());
        } else {
            permission_state[id] = [];
            is_rated.push(0);
            permission_state[id].push($(".permission-level"+id).val());
            permission_state[id].push($("#title-textarea"+id).val());
        }
    ...

并且有效。

0 个答案:

没有答案