jquery ajax done()无法得到外部变量

时间:2016-11-16 03:05:51

标签: jquery ajax

$('#delete').on('click', function(e){

      var id = '123';

      // layer.confirm('confirm delete?', {
      //     btn: ['ok','cancel'] //buttons
      // }, function(){
          $.ajax({
              type: 'post',
              url: '/test', // ===== could get id =====
              dataType: 'json'
          })
          .done(function(data){
              if(data.code === 1){
                  debugger // ===== could't get id ? ======
                  layer.msg('delete success', {icon: 1});
              }else{
                  layer.msg('success fail', {icon: 1});
              }
          })
          .fail(function(err){
              layer.msg('success fail', {icon: 1});
          })
      // })
    })

我使用$ .ajax()。done()。完成后,无法获得外部变量" id"关于"调试器"?

1 个答案:

答案 0 :(得分:2)

Javascript解释器只会在闭包中捕获变量,如果它们实际用在内部函数中。

如果您将功能更改为在任何地方使用id,它将显示在调试器中。