Javascript 函数参数未在单击事件中更新
Q:功能参数未在单击事件中更新Javascript 函数参数未在单击事件中更新,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,Q:功能参数未在单击事件中更新 **Event.js** // main click event to call $(document).on('click', '.start', function(){ root.ajax({ url: 'location' }, function( response ){ root.update( response ); }) }); **Content.js** var flag = false
**Event.js**
// main click event to call
$(document).on('click', '.start', function(){
root.ajax({
url: 'location'
}, function( response ){
root.update( response );
})
});
**Content.js**
var flag = false;
root.update = function( response ){
if(!flag){
// event assignment for new created button
$(document).on('click', '.innerStart', function(){
// first time prints okay but after printing old value always
// response is not getting updated
console.log( response );
});
flag = true;
}
}
基本上,
响应
变量是第一次传递的。您设置了记录响应的单击事件处理程序,并且不再设置单击处理程序
该响应变量从未更改-始终使用在原始单击处理程序中设置的变量,因为这是您传入的值。相反,您可以尝试将其设置为变量,如:
**Event.js**
var response;
// main click event to call
$(document).on('click', '.start', function(){
root.ajax({
url: 'location'
}, function( responseValue ){
root.update( responseValue );
})
});
**Content.js**
var flag = false;
root.update = function( responseValue ){
response = responseValue;
if(!flag){
// event assignment for new created button
$(document).on('click', '.innerStart', function(){
// first time prints okay but after printing old value always
// response is not getting updated
console.log( response );
});
flag = true;
}
}
flag变量似乎已设置为true,是什么使更新运行一次。工作流是什么?单击“.start”,然后单击“.innerStart”,控制台将打印“某物”。你点击“.start”,你点击“.innerStart”,控制台打印???(你期望什么?)?单击。开始我将得到一个弹出窗口,在新窗口中有许多。innerStart,当我单击时。innerStart然后应显示响应的更新值