2016-11-16 87 views
1
$('#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

回答

2

如果Javascript解釋器實際在內部函數中使用,它將只捕獲閉包中的變量。

如果您將函數更改爲在任何地方使用id,它將顯示在調試器中。

+0

非常感謝!添加「console.log(id);」時,我可以輸出id。你的回答更新我對JavaScript的知識,謝謝! – sfp12