-1

我使用 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);
  }); 
});
4

5 回答 5

3

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

http://api.jquery.com/live/ & http://api.jquery.com/on/

于 2013-05-03T11:02:28.233 回答
3

答案是:

$(document).on('click','#b',function(){...}); //live equivalent

但更好的是使用最近的静态容器:

$('#container_wrap_metro').on('click','#b',function(){...});
于 2013-05-03T11:06:14.847 回答
0

我已将 live 替换为 on,但它对我不起作用。您可以使用 .delegate()

就我而言,我在动态加载的内容中写了一个点击。当我更新 JQuery 库时,live 停止工作并今天用委托替换它。

在此处查看更多信息:https ://api.jquery.com/delegate/

于 2014-03-11T10:43:07.283 回答
0

您使用的是哪个 jQuery 版本?实时功能可能已被弃用。使用 .on() 代替还是直接使用 .click()?

于 2013-05-03T11:02:14.670 回答
0

不推荐使用On() 作为live()。

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

http://jquery.com/upgrade-guide/1.9/#live-removed

于 2013-05-03T11:03:11.187 回答