1.页面本身有9个p,然后下方是loadmore按钮,点击loadmore,加载出三个p,加载出的p和之前存在的p除了内容不同,结构是一样的,原来的9个p的点赞功能是正常的,但是为什么加载出的p的点赞按钮就不能用呢?查看了一个控制台,对于加载出的新内容,点击"点赞"时候并没有发起ajax请求,这是什么原因?
jquery:
//news页面的loadmore功能
$(document).ready(function(){
$(document).on("click", "#news-show", function(){
var no = $("#news-currentresult").val();
$.ajax({
type:"GET",
url:"functions/php/newspageload.php",
data:{page:no},
success:function(data){
no++;
$("#news-currentresult").val(no);
$("#news-showdata").append(data);
// $(".view-news").append(data);
}
});
});
})
//点赞功能
$(document).ready(function(){
// 获取所有flag元素
// var flaglist = $(".flag");
$(".flag").on("click" ,function(){
//获取页面点赞次数
var $self = $(this);
var count = $(this).find(".count").text();
//获取news id数据传递到php
var id= $(this).parent().siblings().find(".ds-subtitle").attr("rel");
// alert(count);
// alert(id);
$.ajax({
url:"functions/php/like.php",
type:"POST",
// cache:false,
data:{count:count,id:id},
success:function(data){
// alert(data);
var str = data.split(",");
var bool = str[0];
var nums = str[1];
// alert(nums);
// console.log(data);
if (bool == "0") {
alert("尚未登录");
$("#popup-box1").show();
}
if (bool == "1"){
// alert("你已登录");
// $("#popup-box1").hide();
$("span .count",$self).text(nums);
}
}
});
});
});
php:
fetch_assoc()){
?>
Mar
23rd
2017
We're announcing two new shows in Punta Cana, Dominican Republic & Panama City, Panama....
". $nums ."";
?>
Like this news post
html:
Mar
23rd
2017
We're announcing two new shows in Punta Cana, Dominican Republic & Panama City, Panama....
". $nums ."";
?>
Like this news post
你在事件处理函数里打个log就知道了。
原因在这。
你加载出的p没有绑click事件啊
要在ajax之后给这些加载进来的元素添加click事件不是么
代码太长没看,我猜是新创建的 DOM 没有加事件监听吧,可以用事件委托