我正在使用Ryan Bates gem创建我的应用程序的评论通知,评论对创建的帖子是多态的,
在进入细节之前,这里有一个Javascript,它会选择第一个参数,无论值是多少,我都不知道为什么!
$('#notify').bind('DOMNodeInserted DOMNodeRemoved', function(event) {
if (event.type == 'DOMNodeInserted') {
if ( $('#PostOwnerID').val() == $('#CuID').val() ) {
$("#Notification").removeClass("btn btn-primary");
$("#Notification").addClass("btn btn-success");
alert('Eq')
}
else {
alert('Not Equal')
}
}
else {
}
});
以下是我正在做的其余工作,从添加注释视图create.js.erb>开始
<% publish_to "/layouts/comments" do %>
$("#<%= @commentable.id %>").empty();
$("#<%= @commentable.id %>").append("<%= escape_javascript(render(:partial => 'comments')) %>");
$("textarea#user_comment_content").val(null);
<% end %>
为了让控制器保持简短,我发布了这些字段>
PrivatePub.publish_to("/layouts/comments", "$('#notify').append('#{@comment.content}'); $('#CuID').append('#{current_user.id}'); $('#PostOwnerID').append('#{@commentable.user_id}');")
在通知视图中,我有以下行:
<div id="demo" class="collapse in">
<div id="PostOwnerID"></div>
<div id="CuID"></div>
<div id="notify"></div>
<%= subscribe_to "/layouts/comments" %>
</div>
if-else假设检查Post所有者是否为当前用户,如果是当前用户,则他/她会收到通知。但它让我抓狂,因为它一直在选择第一个Argument!
$("#someDiv").bind("DOMSubtreeModified", function() {
alert("tree changed");
});
是否有JavaScript/jQuery DOM更改侦听器?
这起到了作用,但我意识到我做得不对,在前端处理数据已经太晚了。