呈现部分无法调用javascripts

时间:2011-11-11 15:24:33

标签: jquery ruby-on-rails

我有部分包含messeges列表。

当我点击消息时,

  • 该消息已显示
  • ajax也正在将read的值更新为true
  • 从update.js渲染部分。(因此用户可以看到未读信息以粗体显示)

所以对于第一个例子它运作良好但不适用于第二个实例。 所以我发现我的部分没有第二次获得脚本。 知道为什么会这样吗?

代码详情: message.js

  $(".message_inbox_link").bind('click', function(){
    message_id = $(this).data('messageid');
      $.ajax({
        url: '/private_messages/'+message_id,
        type: 'PUT',
      });
  });

controller.rb

 def update
    @private_messages = current_user.private_messages.inbox.order('created_at DESC')
    @private_message = PrivateMessage.find(params[:id])
    respond_to do |format|
      @private_message.update_attribute(:unread, false)
      format.js 
   end
 end

update.js

$("#inbox").html("<%= escape_javascript( render(:partial => "inbox") ) %>");

2 个答案:

答案 0 :(得分:0)

我知道你正在使用Ruby,但是在ASP.NET中部分页面回发后我遇到了同样的问题......

无论出于何种原因,您需要在部分回发后重新启动您的JavaScript。以下是我博客上的详细说明,希望对此有所帮助... http://www.raleighflash.com/article/20

祝你好运!

答案 1 :(得分:0)

jquery中的轻微变化使其正常工作。但不知道为什么?

在第一种情况下,我的jquery是这样的(不适用于第二次迭代)

$(document).ready(function() {
  $(".message_inbox_link").bind('click', function(){
    message_id = $(this).data('messageid');
      $.ajax({
        url: '/private_messages/'+message_id,
        type: 'PUT',
      });
  });
}); 

以下是正在运行的代码

$(document).on("click", ".message_inbox_link", function () {
    message_id = $(this).data('messageid');
      $.ajax({
        url: '/private_messages/'+message_id,
        type: 'PUT',
      });
  });