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“它看起来像你的文章主要是代码;请添加一些更多的细节。”,添加一些单词。其实我解释这个问题很明显。
答
如果Javascript解释器实际在内部函数中使用,它将只捕获闭包中的变量。
如果您将函数更改为在任何地方使用id
,它将显示在调试器中。
+0
非常感谢!添加“console.log(id);”时,我可以输出id。你的回答更新我对JavaScript的知识,谢谢! – sfp12
从发布的代码中,'id'在该范围内可用,并且没有理由不这样做。 – adeneo