6

我对 Ajax 和 JQuery 很陌生,所以请多多包涵。我在我的页面上通过 Ajax 加载内容,加载的内容里面有一个 jQuery 幻灯片。当我单击链接时,一切运行正常,内容出现,除了幻灯片之外的所有内容都没有开始。我需要再次单击该链接,以便幻灯片开始工作。

到目前为止,这是我的代码:

var loadUrl = "map_fr.html";    
$("#loader").on('click',function(){
    $("#conteudo_projects").html(ajax_load).load(loadUrl);
    });

然后我选择一个带有 id="loader" 的链接来加载 #conteudo_projects DIV 中的内容。

谁能帮我?为什么幻灯片在第一次单击时不开始工作?(如果我直接在页面上测试幻灯片,它可以工作,所以我知道这没有问题,只有当我通过 Ajax 加载它时才会发生)。

非常感谢!

编辑:我安装了 Firebug,虽然我仍然不太了解它显示的所有内容,但我注意到在 Net>JS 下,第一次单击链接时,我得到 GET jQuery 请求 (ajax.googleapis.com) 变灰. 当我再次单击时,新请求似乎没问题。不知道这是否有帮助,我正在尽一切努力使这项工作。谢谢!

4

2 回答 2

2

api的使用on不正确..您还确保您将此事件处理程序绑定到document.ready..这是代码应该是什么:

此外,您的 ajax 负载可能应该在您的事件处理程序回调中

$(document).ready(function(){
  $(document).on('click',"#loader",function(){
      $.ajax(url:url,
             type:"POST",
             success:function(data){  
             $("#conteudo_projects").html(data); 
             });
      });
});
于 2012-04-20T01:05:02.100 回答
1

你可以使用 jQueryload来加载这样的内容

这将显示您存储在 ajax_load 变量中的 ajax 加载图像并从 yourUrl 获取内容。一旦它从 ajax 调用接收到内容,它将用新内容替换加载图像标记。

$(function(){
  $(document).on('click',"#loader",function(){
     $("#conteudo_projects").html(ajax_load).fadeIn(300,function(){
        $(this).load(yourUrl);
     });
  });
});

jQueryon从 1.7+ 开始可用。如果您使用的是之前的版本,您可能需要考虑 jQuery live

于 2012-04-20T01:16:15.630 回答