2011-11-11 15 views
0

私はmessegesリストを含む部分を持っています。レンダリングされた部分はJavaScriptを呼び出せません

メッセージに私をクリックすると、

  • そのメッセージはまた、Ajaxはupdate.jsからの部分的なレンダリング
  • に読み取りの値を更新している。(ユーザが未読のMSGを見ることができます
  • を表示しました。太字で)

したがって、最初のインスタンスではうまく動作しますが、2番目のインスタンスでは動作しません。 私は部分的に2度目のスクリプトを取得していないことを理解しています。 なぜそれが起こっているか考えてみましょうか?

コードの詳細: message.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', 
     }); 
    }); 
}); 

(2回目の反復のために働いていない)最初のケースで

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

update.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 

私はあなたがルビーを使用している知っているが、私はしましたASP.NETで部分ページポストバック後に同じ問題が発生しました...

何らかの理由で、部分的なポストバック後にJavaScriptを再起動する必要があります。ここに私のブログの詳細な説明があります... http://www.raleighflash.com/article/20

幸運!

関連する問題