簡體   English   中英

如何在Rails中使用Ajax替換application.html.erb中的html?

[英]how to replace html in application.html.erb using ajax in rails?

我嘗試在yield內部使用ajax,所有方法均能正常工作,但是當我實現ajax時,請在application.html.erb(布局)中替換html,但ajax無法正常工作且不能替換html。

我的application.html.erb:

<li id="header_notification_bar" class="dropdown">
  <a id="click_notif" data-toggle="dropdown" class="dropdown-toggle" data-remote="true" href="#">
    <i class="fa fa-bell-o"></i>
    <span id="notif_count" class="badge bg-warning"></span>
   </a>
   <ul id="notif_content" class="dropdown-menu extended notification">

   </ul>
</li>

<script>
  $(document).ready( function() {
    $('#notif_content').html("<%=j render 'layouts/load_notif' %>");
    $("#click_notif").click(function(){
      $('#notif_count').html("<%=j render 'layouts/notif_count' %>");
    }); 
  });           
 </script>

如果AJAX實現內部收益率,在控制器的動作應該添加format.js和我創建文件action_name.js.erb ,但如果application.html.erb我應該做???

請幫助我,謝謝

您是否嘗試過:

 $(document).ready( function() {

    $('#notif_content').html("<%=j render 'layouts/load_notif' %>");

    $(document).on("click", "#click_notif", function(){
      $('#notif_count').html("<%=j render 'layouts/notif_count' %>");
    }); 

  });

代表

盡管您的問題很晦澀,但是ajax的典型問題是,由於您要將新元素加載到DOM中,因此JS事件綁定器無法附加相應的事件

我不認為我編寫的代碼可以開箱即用,但是它基本上依賴於.delegate原理-您選擇“容器”元素,然后從中委托事件

由於容器是在DOM加載時存在的,這意味着您將能夠使它與新元素一起使用。 您確實需要提供您的AJAX代碼以幫助我們創建更好的答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM