2011-11-11 50 views
0

我有部分包含messeges列表。呈现部分不能调用javascripts

当我点击消息,

  • 该消息得到了显示的阅读真
  • 呈现从update.js部分
  • 也Ajax是更新值。(这样用户就可以看到未读彩信。以粗体显示)

因此对于第一个实例它运行良好,但不适用于第二实例。 所以我想通了,我的部分没有得到第二次的脚本。 任何想法为什么发生?

代码细节: 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")) %>"); 
+0

张贴相关的代码 – tmaximini

+0

这样做@frank暴风雪代码 – chaitanya

回答

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', 
     }); 
    }); 
0

我知道你在使用Ruby,但我在ASP.NET中的部分页面回发之后发生同样的问题...

无论出于何种原因,您需要在部分回发后重新启动JavaScript。这里是我的博客上的详细解释,希望可以帮助... http://www.raleighflash.com/article/20

祝你好运!