Jquery:只需在第一次点击“加载更多...”时加载下一页

如果DIV结束,我需要在每次点击文本“加载更多”时加载内容。我目前的代码如下:

<div id="Container"> 
load more

</div>

$(".load:last").click(function(){
$(".load:last").load("nextPage.php", function() {
$(this).hide();

$("div#Container").append($(this).html());
$("div#Container").append("
load more...

"); });

第一次点击的作品,因为它从nextPage.php加载更多。然而,随后的点击不会触发负载。我究竟做错了什么?

0
额外 编辑
意见: 1
你不需要$(“。load:last”),因为你隐藏了前面的加载数据,只需要使它成为$(“。load”)。click(function(){...});
额外 作者 Tuscan,
我曾尝试过,但结果相同。我也尝试过:last和no hide(),以及no:last并使用“load”作为id而不是class,但它也没有任何区别
额外 作者 zzz,

3 答案

    $(".load:last").live('click', function() {
        $(this).remove();
        //Or
       //$(this).hide();
        $(".load:last").load("nextPage.php", function() {
            $("div#Container").append($(this).html());
            $("div#Container").append("
load more...

"); }); });
0
额外
使用现场......
额外 作者 Thulasiram,
这对我很有用,谢谢你们两位!双检查我的jQuery,结果我使用1.6 jQuery,因此.on()没有触发但.live工作。
额外 作者 zzz,
live从jQuery 1.7开始被弃用,如果您使用的是1.4+,请使用delegate代替文档:从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。老版本的jQuery用户应该优先使用.delegate()。.live()。
额外 作者 Andreas Wong,

尝试使用jquery的 .live()方法或.on(),它为当前和将来与当前选择器匹配的所有元素附加一个事件处理程序。

Click here for information and example for .live event in jquery
I hope this will definitely solve you problem.

运气最好! :)

0
额外
谢谢你们,这一切都非常有帮助!
额外 作者 zzz,
感谢阐明这个话题...是的.live()方法已被废弃。 .on()正在使用中
额外 作者 Manish Kumar Namdev,
live从jQuery 1.7开始被弃用,如果您使用的是1.4+,请使用delegate代替文档:从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。老版本的jQuery用户应该优先使用.delegate()。.live()。
额外 作者 Andreas Wong,

由于 .load 每次都添加到 div#Container 中,所以您应该对这个 .load 使用实时事件处理程序,如下所示:

$("div#Container").on('click', '.load', function() {
  $(this).parent('div#Container').load('nextPage.php', function() {
     $('div#Container').append("
load more...

"); }) })
0
额外
由于某种原因它不会触发任何负载。我也尝试在on()事件处理函数中使用alert(“hello”),但当点击“load more”时它从未触发
额外 作者 zzz,
对不起,它确实触发了事件 - 它不工作,因为我使用1.6 jQuery,因此必须使用.live()。事件处理程序并不完全符合我的要求,但它帮助我找到了解决方法,谢谢!
额外 作者 zzz,