jQuery的阿贾克斯()便无法获得外部变量

jQuery的阿贾克斯()便无法获得外部变量

问题描述:

$('#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}); 
      }) 
     // }) 

    }) 

我使用$阿贾克斯()()完成。当完成解雇,无法获得关于“调试器”的外部变量“ID”?jQuery的阿贾克斯()便无法获得外部变量

对于reslove“它看起来像你的文章主要是代码;请添加一些更多的细节。”,添加一些单词。其实我解释这个问题很明显。

+0

从发布的代码中,'id'在该范围内可用,并且没有理由不这样做。 – adeneo

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

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

+0

非常感谢!添加“console.log(id);”时,我可以输出id。你的回答更新我对JavaScript的知识,谢谢! – sfp12