Javascript 函数在一段时间后无法在Ajax中工作
我有一个输入,在更改时应该将它的值发送给ajax并得到响应。Ajax工作正常,并取得了成功,但如果我不进行更改或单击,它内部的Javascript 函数在一段时间后无法在Ajax中工作,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个输入,在更改时应该将它的值发送给ajax并得到响应。Ajax工作正常,并取得了成功,但如果我不进行更改或单击,它内部的click功能将无法正常工作。如果我在响应后立即单击,它会工作,但如果我在4-5秒内没有进行更改,则类似于关闭会话。我怎样才能避免这个时间 下面是我的ajax示例 $('unvan_search')。在('keyup change',function()上{ var unvan=$(this.val(); $.ajax({ 类型:“POST”, url:url, 数据:
click
功能将无法正常工作。如果我在响应后立即单击,它会工作,但如果我在4-5秒内没有进行更改,则类似于关闭会话。我怎样才能避免这个时间
下面是我的ajax示例
$('unvan_search')。在('keyup change',function()上{
var unvan=$(this.val();
$.ajax({
类型:“POST”,
url:url,
数据:{
“tpIdRegion”:区域类型\u id\u j+“\u”+区域id\u j,
“路”:unvan,
“guid”:我的\u密钥
},
beforeSend:function(){
console.log('before send');
},
成功:职能(e){
console.log('suceess');
var输出=[];
对于(var i=0;i”+e.names[i].Name+”');
console.log('filled');
};
$('#unvan_select_div ul').html(output.join('');
$(“#unvan_select_div ul”)。在(“单击“,”上获取“街道”,函数(){
//我的代码在4-5秒后无法使用
});
},
错误:函数(x,t,m){
警报(“错误”);
}
});
});代码>此绑定在此:
$("#unvan_select_div ul").on("click", '.get_street', function() { ... }
无需在success
回调中声明它。这种委托绑定就是为了这个目的而存在的:能够处理在稍后阶段创建的元素上的事件如果您这样构造它,它可能会起作用
var ret = false;
$.ajax({
type: "POST",
url: url,
data: {
'tpIdRegion': region_type_id_j + '_' + region_id_j,
'road': unvan,
'guid': my_key
},
beforeSend: function() {
console.log('before send');
},
success: function(e) {
ret = true;
console.log('suceess');
var output = [];
for (var i = 0; i < e.names.length; i++) {
output.push('<li class="get_street es-visible" idx="' + e.names[i].X + '" idy="' + e.names[i].Y + '" id="' + e.names[i].ID + '" value="' + e.names[i].ID + '" style="display: block;">' + e.names[i].Name + '</li>');
console.log('filled');
};
return;
},
error: function(x, t, m) {
alert("error");
}
});
});
if(ret) {
$('#unvan_select_div ul').html(output.join(''));
$("#unvan_select_div ul").on("click", '.get_street', function() {
//MY CODE HERE WHICH I CAN NOT USE AFTER 4-5 SECONDS
});
}
var-ret=false;
$.ajax({
类型:“POST”,
url:url,
数据:{
“tpIdRegion”:区域类型\u id\u j+“\u”+区域id\u j,
“路”:unvan,
“guid”:我的\u密钥
},
beforeSend:function(){
console.log('before send');
},
成功:职能(e){
ret=真;
console.log('suceess');
var输出=[];
对于(var i=0;i”+e.names[i].Name+”');
console.log('filled');
};
返回;
},
错误:函数(x,t,m){
警报(“错误”);
}
});
});
如果(ret){
$('#unvan_select_div ul').html(output.join('');
$(“#unvan_select_div ul”)。在(“单击“,”上获取“街道”,函数(){
//我的代码在4-5秒后无法使用
});
}
您可以将get_street click功能从ajax成功中移出看起来您在#unvan_select_div ul
元素上是重复绑定