Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 在ajax调用中未访问的值_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 在ajax调用中未访问的值

Javascript 在ajax调用中未访问的值,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有以下代码。问题是,当我在click函数中警告id和status的值时,它可以正常工作,但当我尝试在函数外部这样做时,id的值最初会返回未定义的值,但之后警告就不起作用了。请帮忙 var status = 1; var id; $("body").on('click','#first' , function() { id = 1; $.ajax({ type: "POST",

我有以下代码。问题是,当我在click函数中警告id和status的值时,它可以正常工作,但当我尝试在函数外部这样做时,id的值最初会返回未定义的值,但之后警告就不起作用了。请帮忙

var status = 1;
        var id;
        $("body").on('click','#first' , function() {  
            id = 1;    
            $.ajax({
            type: "POST",
            url: "url",
            data: {id: id, status: status},
            dataType: "html",
            success: function(data) {
                //alert(data);
                if($.trim(data) == "A") {
                    alert('A');
                } else if($.trim(data) == "B") {
                    alert('B');
                }
            }, error: function() {
                alert("ERROR!");
            }
        });    
        });

        $("body").on('click','#second' , function() {  
            id = 2;
            status = 0;
            $.ajax({
            type: "POST",
            url: "url",
            data: {id: id, status: status},
            dataType: "html",
            success: function(data) {
                //alert(data);
                if($.trim(data) == "A") {
                    alert('A');
                } else if($.trim(data) == "B") {
                    alert('B');
                }
            }, error: function() {
                alert("ERROR!");
            }
        });
        });
试试这个

var status = 1;
var id;
$("body").on('click','#first' , function() {  
    id = 1;
    SomethingName();
});
$("body").on('click','#second' , function() {  
    id = 2;
    status = 0;
    SomethingName();
});
function SomethingName(){
    $.ajax({
        type: "POST",
        url: "url",
        data: {id: id, status: status},
        dataType: "html",
        success: function(data) {
    //alert(data);
    if($.trim(data) == "A") {
        alert('A');
    } else if($.trim(data) == "B") {
        alert('B');
    }
        }, error: function() {
    alert("ERROR!");
        }

    });
}
或者试试这个

var status = 1;
var id;
$("body").on('click','#first' , function() {  
    id = 1;
    SomethingName(id,status);
});
$("body").on('click','#second' , function() {  
    id = 2;
    status = 0;
    SomethingName(id,status);
});
function SomethingName(_id,_status){
    $.ajax({
        type: "POST",
        url: "url",
        data: {id: _id, status: _status},
        dataType: "html",
        success: function(data) {
    //alert(data);
    if($.trim(data) == "A") {
        alert('A');
    } else if($.trim(data) == "B") {
        alert('B');
    }
        }, error: function() {
    alert("ERROR!");
        }

    });
}

将ajax放在click Event中除非调用了click1或click2,“id”将不会有任何基于代码的值。仍然没有发生任何事情@Guradio,具体来说,值在哪里是未定义的?你希望它在那个时候有什么价值?为什么?这个代码对我来说没什么意义。在进行AJAX调用之前,用户不可能单击某个元素,它实际上位于下一行代码中。在这段代码中,你到底想实现什么?@pokemon如果你在初始化后调用ajax,它就会工作。你能分享你改变了什么吗。