我正在尝试为墙贴(如facebook墙)创建简单的评论系统 我正在使用加载更多按钮,每次显示来自数据库的10个帖子“显示更多”按钮点击... 并且对于每个帖子都有评论textarea,添加评论我正在使用“输入按键功能”..
Keypress事件在ajax调用之前按照需要工作。
当用户激活加载更多帖子事件时,按键事件不再起作用,我检查了页面源代码,在页面上找不到帖子加载的源代码但这个帖子出现在浏览器中!!
添加评论功能:
$(function() {
$('.comment-form').keypress(function(event) {
if (((event.keyCode || event.which) == 13) && !event.shiftKey) {
// My ajax request here
}
});
});
加载更多功能:
$(function() {
//More Button
$('.more').live("click",function() {
var ID = $(this).attr("id");
if(ID) {
$.ajax({
type: "POST",
url: "{$url}/ajax.php",
data: "loadmore="+ ID,
cache: false,
success: function(html) {
$("#loadmore").append(html);
}
});
}
return false;
});
});
HTML:
<div class="message">
$Message
</div>
<div class="commenter">
<textarea id="$id" class="comment-form" type="text" placeholder="Write comment..." maxlength="1000"></textarea>
</div>
我是初学者,请帮助:)
答案 0 :(得分:1)
使用以下代码将keypress事件绑定到所有未来的html以及DOM中的当前html -
$('.comment-form').on('keypress', (function(event) {
if (((event.keyCode || event.which) == 13) && !event.shiftKey) {
// My ajax request here
}
}));
答案 1 :(得分:0)
通过ajax加载的html内容不会附加事件,它是新的。附加活动不是追溯性的。您需要运行将事件附加到新HTML的函数。