您好,我目前正在创建一个“论坛”,用户可以在其中提交帖子并显示。我想要添加评论的选项。
我正在做客户端的所有事情。
这是生成论坛的代码:
$.get(url, page, function(data){
$("#forum").html("");
for(var i in data)
{
$("#forum").append(buildForumEntry(data[i]));
}
});
// Builds the forum entry
function buildForumEntry(post)
{
var titleAndType = '<div><span class="forum-title">'+post.title+'</span>'+buildType(post.type)+'</div>';
var author = "<div class=\"forum-author\">By: "+post.author+" on "+formatDate(post.date)+"</div>";
var body = "<pre>"+post.body+"</pre>";
var comment = "<div class=\"forum-comment\"> <div class=\"btn-group\"><a class=\"btn btn-mini btn-primary\" role=\"button\" data-toggle=\"modal\" id=\"btn-forum-comment\"><i class=\"icon-comment icon-white\"></i> comment</a></div></div>";
var footer = "<hr style=\"border-top: 1px dotted #b0b0b0;border-bottom: 0px\">";
var entry = titleAndType+author+body+comment+footer;
return entry;
}
当我点击评论 btn 时,我该怎么做才能获取帖子的一些信息?同样在此方法中调用:
// Button comment
$("#btn-forum-comment").click(function() {
alert("clicked");
});
这不会起作用,因为有超过 1 种类型的“id=btn-forum-comment”。我应该使用一个类吗?如果是这样,我如何获取更多实例帖子的标题,以便当我发布到我的服务器时,我可以更新正确的条目。
更新:类在生成的论坛中不起作用。按钮点击没有被触发。有任何想法吗?
var comment = '<div class="btn-group"><a class="btn btn-mini btn-primary btn-forum-comment" id="btn-forum-comment-'+post._id+'"><i class="icon-comment icon-white"></i> comment</a></div>';
// Button comment
$(".btn-forum-comment").click(function() {
// now you know the id of clicked comment, so you can rewrite this with code which will open a form to answer exactly this comment
console.log("clicked");
alert($(this).attr('id')+" clicked");
});
我在点击时遇到问题,我认为它与动态加载有关。我将该类应用于硬编码的 html 并且它可以工作。但不是动态的感谢。
UPDATE2:为未来的用户更新。我需要使用委托功能
$("#forum").delegate(".btn-forum-comment", "click", function() {
console.log("clicked");
alert($(this).attr('id')+" clicked");
});