Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery rendered partial无法调用javascripts_Jquery_Ruby On Rails - Fatal编程技术网

Jquery rendered partial无法调用javascripts

Jquery rendered partial无法调用javascripts,jquery,ruby-on-rails,Jquery,Ruby On Rails,我有一个包含messeges列表的部分 当我点击消息时 那条信息被显示出来了 另外,ajax正在将read的值更新为true 从update.js呈现部分内容(这样用户可以看到未读的粗体消息) 因此,对于第一个例子来说,它工作得很好,但对于第二个例子来说,它不起作用。 所以我发现我的partial在第二次时没有得到脚本。 知道为什么会这样吗 代码详细信息: message.js $(".message_inbox_link").bind('click', function(){

我有一个包含messeges列表的部分

当我点击消息时

  • 那条信息被显示出来了
  • 另外,ajax正在将read的值更新为true
  • 从update.js呈现部分内容(这样用户可以看到未读的粗体消息)
因此,对于第一个例子来说,它工作得很好,但对于第二个例子来说,它不起作用。 所以我发现我的partial在第二次时没有得到脚本。 知道为什么会这样吗

代码详细信息: 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") ) %>");
$(“#收件箱”).html(“收件箱”)%%>”;

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

无论出于何种原因,您都需要在部分回发之后重新初始化javascript。下面是我的博客上的详细解释,希望能对你有所帮助


祝你好运

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

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

下面是正在工作的代码

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

发布相关代码@frank blizzard
$(document).on("click", ".message_inbox_link", function () {
    message_id = $(this).data('messageid');
      $.ajax({
        url: '/private_messages/'+message_id,
        type: 'PUT',
      });
  });