2011-11-11 49 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

祝你好運!