Javascript 函数在一段时间后无法在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, 数据:

我有一个输入,在更改时应该将它的值发送给ajax并得到响应。Ajax工作正常,并取得了成功,但如果我不进行更改或单击,它内部的
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
元素上是重复绑定