我正在创建一个博客,我想通过ajax加载我的帖子,而不是分页,我做了。
但问题是: 我为每个帖子都有类似ajax的系统,但它只适用于未加载ajax的帖子。
- 处理请求的PHP方法:
public function load_more(){
$offset = $this->input->post('loaded_count' , true) ? : 0 ;
// for those who don't know codeigniter the line above is equal to $_POST['loaded_count']
$posts = $this->mod->get_posts($offset);
// gets posts array from database
include_once "./application/views/inc/show-posts.php";
}
show-posts.php 文件中的我的帖子模板在 $ posts 变量上进行了foreach循环。
- 用于加载帖子的Ajax:
$(".load-more-btn").click(function(){
var $this = $(this);
var $posts_cont = $(".posts-container");
var $loadedPostsCount = $this.attr('data-ppp');
$.ajax({
url : "http://localhost/bona/ajax/load_more" ,
type : 'post' ,
data : {loaded_count : $loadedPostsCount} ,
success : function(resp){
$posts_cont.append(resp);
},
error : function(xhr){
alert("error");
console.log(xhr);
}
});
});
- 喜欢帖子的Ajax
$(".like-post").click(function(){
var $postID = $(this).attr("data-class");
var $this = $(this).find(".like-holder");
$.ajax({
url : "http://localhost/bona/ajax/add_like') ?>",
type : "post" ,
data : { like_id : $postID } ,
success : function (resp,s,x){
$this.text(resp);
} ,
error : function(xhr){
alert("error");
console.log(xhr);
}
});
});
1:我将这两个放在 $(document).ready() 事件中。
2:我在点击时没有出现任何错误,看起来点击事件(对于喜欢)不会触发由ajax加载的帖子。
3:我正在使用Codeigniter
我认为$(document).ready导致了这个问题。
您如何看待?
答案 0 :(得分:0)
您正在使用$().click
活动。此命令适用于执行时文档中的所有节点,但不适用于进一步加载的元素。
您需要更改$().click with $().on("click", "", function())
。
Here是手动的。