关于Jquery的ajax执行结束后,继续执行的问题

时间:2022-06-13 08:36:18

$(function(){
    $("#login").dialog({
        autoOpen: false,
    width: 580,
    height:405,
    resizable: false,
    dialogClass: 'order',
    buttons: {
        "Login":function(){
                    var account = $('#a1').val();;
    var password = $('#a2').val();
    var verifycd = $('#a3').val();
    var section=$("#a4").val();
    
         
         //按钮不可用
    var yesButton = $('.order .ui-dialog-buttonpane button:first');
    yesButton.attr('disabled', true).addClass('ui-state-disabled');
    
         
         $.ajax({
             url: "../login.aspx",
dataType: "text json",
                        type: "POST",
                        data: {
                          "account":account,
                          "password":password,
                          "verifycd":verifycd,
                          "section":section
},
    
error: function (XMLHttpRequest, textStatus, errorThrown) {
    
        //按钮可用
            var yesButton = $('.ui-dialog-buttonpane button:first');
                    yesButton.attr('disabled', '').removeClass('ui-state-disabled');
                    },
                    
                    success: function(result) {
                        
                            alert(result);
                     
                        //按钮可用
                    var yesButton = $('.ui-dialog-buttonpane button:first');
                           yesButton.attr('disabled', '').removeClass('ui-state-disabled');
                    }
         })
        }
    }
    })
    
    
     $("#showitem").dialog({
        autoOpen: false,
    width: 250,
    height:200,
    resizable: false,
    buttons:{
        "Yes":function(){
        },
        "No":function(){
            $("#showitem").dialog("close");
        }
    }
     })
})


function gotopurchase(vp,img,item){
    result=checkLogin();
    if(result=="" || result==null){
        openLogin();
    }
/////这里怎么写才能在openLogin方法ajax结束后继续执行????
    $("#showitem").dialog("open");
}


请大大帮忙~~~~

13 个解决方案

#1



function openLogin(){
    $("#login").dialog("open");
}

#2


放到ajax的success里面

#3


放进
success: function(result) {
                         
                            alert(result);
                         ......
                        //按钮可用
                        var yesButton = $('.ui-dialog-buttonpane button:first');
                           yesButton.attr('disabled', '').removeClass('ui-state-disabled');
                    }

不就可以了吗?

#4


没看懂   关于Jquery的ajax执行结束后,继续执行的问题

#5


引用 2 楼 MengYouXuanLv 的回复:
放到ajax的success里面


openLogin在其他地方也有调用,所以不能gotopurchase里的内容写到success里面。。

#6


引用 3 楼 u011461314 的回复:
放进
success: function(result) {
                         
                            alert(result);
                         ......
                        //按钮可用
                        var yesButton = $('.ui-dialog-buttonpane button:first');
                           yesButton.attr('disabled', '').removeClass('ui-state-disabled');
                    }

不就可以了吗?


关于Jquery的ajax执行结束后,继续执行的问题

木看懂~~~

#7


success: function(result) {                         
         alert(result);                         
         //按钮可用
         var yesButton = $('.ui-dialog-buttonpane button:first');
         yesButton.attr('disabled', '').removeClass('ui-state-disabled');
/////这里这样写就能在openLogin方法ajax结束后继续执行!
$("#showitem").dialog("open");
}

#8


引用 5 楼 sunnxxy 的回复:
Quote: 引用 2 楼 MengYouXuanLv 的回复:

放到ajax的success里面


openLogin在其他地方也有调用,所以不能gotopurchase里的内容写到success里面。。

外面设个变量加个判断,是谁调用了才$("#showitem").dialog("open");

#9


引用 8 楼 lzpggg 的回复:
Quote: 引用 5 楼 sunnxxy 的回复:

Quote: 引用 2 楼 MengYouXuanLv 的回复:

放到ajax的success里面


openLogin在其他地方也有调用,所以不能gotopurchase里的内容写到success里面。。

外面设个变量加个判断,是谁调用了才$("#showitem").dialog("open");


恩,这样貌似不行,因为ajax是异步的,Login数据查询时间较长,登陆没结束,早就跳到下面开始判断你说的变量

#10


引用 7 楼 lzpggg 的回复:
success: function(result) {                         
         alert(result);                         
         //按钮可用
         var yesButton = $('.ui-dialog-buttonpane button:first');
         yesButton.attr('disabled', '').removeClass('ui-state-disabled');
/////这里这样写就能在openLogin方法ajax结束后继续执行!
$("#showitem").dialog("open");
}


亲,貌似不行啊~~ 关于Jquery的ajax执行结束后,继续执行的问题

#11


你那个不是事件吗?

既然是事件,那变量总有true的时候.

#12


引用 9 楼 sunnxxy 的回复:
Quote: 引用 8 楼 lzpggg 的回复:

Quote: 引用 5 楼 sunnxxy 的回复:

Quote: 引用 2 楼 MengYouXuanLv 的回复:

放到ajax的success里面


openLogin在其他地方也有调用,所以不能gotopurchase里的内容写到success里面。。

外面设个变量加个判断,是谁调用了才$("#showitem").dialog("open");


恩,这样貌似不行,因为ajax是异步的,Login数据查询时间较长,登陆没结束,早就跳到下面开始判断你说的变量

在回调函数里判断

success: function(result) {                         
         alert(result);                         
         //按钮可用
         var yesButton = $('.ui-dialog-buttonpane button:first');
         yesButton.attr('disabled', '').removeClass('ui-state-disabled');
/////这里这样写就能在openLogin方法ajax结束后继续执行!
        if (condition) {
   $("#showitem").dialog("open");
        }
}

#13



   function ajax(url,success){
    $.ajax(
      .....
      ,success:function(){
          ......
          if(success){
            success();
          }
      }
    )
}

$.ajax 封装一下 

#1



function openLogin(){
    $("#login").dialog("open");
}

#2


放到ajax的success里面

#3


放进
success: function(result) {
                         
                            alert(result);
                         ......
                        //按钮可用
                        var yesButton = $('.ui-dialog-buttonpane button:first');
                           yesButton.attr('disabled', '').removeClass('ui-state-disabled');
                    }

不就可以了吗?

#4


没看懂   关于Jquery的ajax执行结束后,继续执行的问题

#5


引用 2 楼 MengYouXuanLv 的回复:
放到ajax的success里面


openLogin在其他地方也有调用,所以不能gotopurchase里的内容写到success里面。。

#6


引用 3 楼 u011461314 的回复:
放进
success: function(result) {
                         
                            alert(result);
                         ......
                        //按钮可用
                        var yesButton = $('.ui-dialog-buttonpane button:first');
                           yesButton.attr('disabled', '').removeClass('ui-state-disabled');
                    }

不就可以了吗?


关于Jquery的ajax执行结束后,继续执行的问题

木看懂~~~

#7


success: function(result) {                         
         alert(result);                         
         //按钮可用
         var yesButton = $('.ui-dialog-buttonpane button:first');
         yesButton.attr('disabled', '').removeClass('ui-state-disabled');
/////这里这样写就能在openLogin方法ajax结束后继续执行!
$("#showitem").dialog("open");
}

#8


引用 5 楼 sunnxxy 的回复:
Quote: 引用 2 楼 MengYouXuanLv 的回复:

放到ajax的success里面


openLogin在其他地方也有调用,所以不能gotopurchase里的内容写到success里面。。

外面设个变量加个判断,是谁调用了才$("#showitem").dialog("open");

#9


引用 8 楼 lzpggg 的回复:
Quote: 引用 5 楼 sunnxxy 的回复:

Quote: 引用 2 楼 MengYouXuanLv 的回复:

放到ajax的success里面


openLogin在其他地方也有调用,所以不能gotopurchase里的内容写到success里面。。

外面设个变量加个判断,是谁调用了才$("#showitem").dialog("open");


恩,这样貌似不行,因为ajax是异步的,Login数据查询时间较长,登陆没结束,早就跳到下面开始判断你说的变量

#10


引用 7 楼 lzpggg 的回复:
success: function(result) {                         
         alert(result);                         
         //按钮可用
         var yesButton = $('.ui-dialog-buttonpane button:first');
         yesButton.attr('disabled', '').removeClass('ui-state-disabled');
/////这里这样写就能在openLogin方法ajax结束后继续执行!
$("#showitem").dialog("open");
}


亲,貌似不行啊~~ 关于Jquery的ajax执行结束后,继续执行的问题

#11


你那个不是事件吗?

既然是事件,那变量总有true的时候.

#12


引用 9 楼 sunnxxy 的回复:
Quote: 引用 8 楼 lzpggg 的回复:

Quote: 引用 5 楼 sunnxxy 的回复:

Quote: 引用 2 楼 MengYouXuanLv 的回复:

放到ajax的success里面


openLogin在其他地方也有调用,所以不能gotopurchase里的内容写到success里面。。

外面设个变量加个判断,是谁调用了才$("#showitem").dialog("open");


恩,这样貌似不行,因为ajax是异步的,Login数据查询时间较长,登陆没结束,早就跳到下面开始判断你说的变量

在回调函数里判断

success: function(result) {                         
         alert(result);                         
         //按钮可用
         var yesButton = $('.ui-dialog-buttonpane button:first');
         yesButton.attr('disabled', '').removeClass('ui-state-disabled');
/////这里这样写就能在openLogin方法ajax结束后继续执行!
        if (condition) {
   $("#showitem").dialog("open");
        }
}

#13



   function ajax(url,success){
    $.ajax(
      .....
      ,success:function(){
          ......
          if(success){
            success();
          }
      }
    )
}

$.ajax 封装一下