Javascript 与keyup一起使用时,Jquery Live函数不起作用

Javascript 与keyup一起使用时,Jquery Live函数不起作用,javascript,jquery,Javascript,Jquery,我使用loadData()函数从php脚本中获取数据,并使用另一个函数从数据库中进行搜索。一切正常,但当我点击搜索结果时,它并没有加载数据。下面是我正在使用的jquery函数 //Gets Data function loadData(id) { loading_show(); $.ajax({ url: "load_data.php", type: "post", data: "id="+id, success: function(data){

我使用loadData()函数从php脚本中获取数据,并使用另一个函数从数据库中进行搜索。一切正常,但当我点击搜索结果时,它并没有加载数据。下面是我正在使用的jquery函数

//Gets Data
function loadData(id)
{
loading_show();
$.ajax({
      url: "load_data.php",
      type: "post",
      data: "id="+id,
      success: function(data){
            loading_hide();
           $("#container_wrap_metro").html(data);
      },
      error:function(){
          alert("failure");
          $("#container_wrap_metro").html('Unable to process request!');
      }  
    }); 
}


//Search
$(function(){
  $("#result").keyup(function(){
    var q = $(this).val();
    $.get("results.php?q="+q, function(data){
    if(q){
        $(".side_container").html(data);
    } 
    else {
        $(".side_container").html("");
    }
  });
});
$('#b').live('click',function(){
  var page = $(this).attr('p');
  loadData(page);
  }); 
});

您使用的是哪个jQuery版本?live函数可能已被弃用。改为使用.on()或直接使用.click()?

.live()已被弃用,因此您可以尝试使用.on()而不是.live()

&

在()上使用
,因为
live
()已被弃用

$(document).on("click", "a.foo", fn);  //here a.foo is target
答案是:

$(document).on('click','#b',function(){...}); //live equivalent
但最好使用最接近的静态容器:

$('#container_wrap_metro').on('click','#b',function(){...});

我已经用on取代了live,但它对我不起作用。您可以使用.delegate()

在我的例子中,我在动态加载的内容中编写了一个单击。当我更新JQuery库时,live停止工作,并在今天将其替换为delegate


请参阅此处的更多信息:

什么是$('#b')??检查jQuery版本,因为在版本>1.7中,live()已被弃用,所以您的问题在于live(),请阅读文档,一切都在解释…@b'是div的id(保存搜索结果),您应该拥有相关的html代码。哪些元素(#b,#result)是动态添加的???我使用jquery 1.9.1,你能建议一种使用.on()函数编写的方法吗?我对jquery不熟悉,只需将“live”替换为“on”:“$(#b”).on(“单击”,函数(){…});不,你必须使用授权!对不起screaming@roasted你确定我们必须这么做吗?我相当肯定,它在没有授权的情况下也能起作用。除此之外,请解释一下,对于动态元素,您必须使用delegationNo,您在这里没有使用delegationa!顺便说一句,有一个拼写错误