【问题标题】:Php and jQuery more and less text using load morePHP 和 jQuery 越来越少的文本使用加载更多
【发布时间】:2023-03-15 21:59:01
【问题描述】:

我将为我的网站尝试更多更少的文字。这是我来自 codepen.io 的 DEMO

所以我的网站是类似于 Facebook 的 SocialNetwork。一些用户发布了长文本,因此我需要更多文本插件

现在我的网站主页显示最后 10 个帖子,当用户向下滚动时,用户会看到显示更多帖子按钮。因此,如果用户单击显示更多帖子,那么我的 jQuery more less 插件将无法正常工作。我应该怎么做有人可以帮助我?

$(document).ready(function() {      
  $(".comment").shorten();      
  $(".comment-small").shorten({showChars: 50});    
 });

这是我用于加载更多帖子的 AJAX 代码:

$('.more').die('click').live("click",function() {   
  var ID = $(this).attr("id");
  var P_ID = $(this).attr("rel");
  var URL=$.base_url+'post_more_ajax.php';
  var dataString = "lastid="+ ID+"&profile_id="+P_ID;
  if(ID) {
    $.ajax({
      type: "POST",
      url: URL,
      data: dataString, 
      cache: false,
      beforeSend: function() {
        $("#more"+ID).html('<img src="wall_icons/ajaxloader.gif" />'); 
      },
      success: function(html) {
        $("div#contentpostwallarea").append(html);
        $("#more"+ID).remove();
      }
    });
  } else {
    $("#more").html('The End');// no results
  }   
  return false;
});

【问题讨论】:

  • 你的意思是“它不工作”?它在您的代码笔中运行良好...
  • 如何获得更多帖子?通过 AJAX,对吗?
  • @AwesomeGuy 是的,我正在使用 AJAX 发布更多帖子
  • 因此,一旦完成新的 ajax 请求,请重新调用插件(最好启用)新添加的元素
  • 试试:success: function(html){ $("div#contentpostwallarea").append(html).find(".comment").shorten(); ...}

标签: javascript php jquery


【解决方案1】:

我认为您需要动态绑定点击,您可以在此处查看解决方案In jQuery, how to attach events to dynamic html elements?

【讨论】:

  • 委托是针对事件的,而不是针对插件的(甚至一些插件也可以实现一些委托选项,但这取决于插件作者)
  • @KoKo 你不能绑定任何事件,除非插件没有提供它或者你不能改变它的核心代码
最近更新 更多