代码之家  ›  专栏  ›  技术社区  ›  Jay Godse

rails:ajax:changes-onload

  •  0
  • Jay Godse  · 技术社区  · 15 年前

    我有一个像这样的for的网页布局

    <html>
      <head>
      </head>
    
      <body>
        <div id="posts">
          <div id="post1" class="post" >
             <!--stuff 1-->
          </div>
          <div id="post2" class="post" >
             <!--stuff 1-->
          </div>
    
          <!-- 96 more posts -->
    
          <div id="post99" class="post" >
             <!--stuff 1-->
          </div>
        </div>          
    
      </body>
    </html>
    

    我希望能够加载和呈现一个空白的页面,然后在加载页面时调用一个函数,该函数将进入并加载文章并动态更新页面。

    在Rails中,我尝试使用“link-to-u-remote”更新所有元素。如果是Ajax请求(request.xhr?),我还调整了posts控制器来呈现posts集合。它工作得很好很快。然而,空白DIV的更新是通过点击链接触发的。我希望在加载页面时执行相同的操作,这样我就不必添加链接。

    在Rails中是否有rails-ajax帮助程序或rjs函数,或者在页面加载和呈现之后(不包含这些文章),我可以使用它来触发“文章”的加载?

    (如果putsch开始推送,我只需将生成的JS代码从链接“复制到”远程调用,并从主体上的onload处理程序调用它)。

    2 回复  |  直到 15 年前
        1
  •  6
  •   alex.zherdev    15 年前

    当然有,毕竟是铁轨:)

    这样做可以做到:

    <% javascript_tag do %>
      $(document).ready(function() {
        <%= remote_function(:update => "posts", :url => posts_partial_path) %>
      });
    <% end %> 
    

    Remote_函数将提供与使用Rails Ajax帮助程序时执行的相同的javascript。

        2
  •  1
  •   Walter Gillett    12 年前

    使用jquery执行此操作时,不要太引人注目,如下所示:

    $(document).ready(function(){
      $.ajax({url: 'posts_partial_path',
               success: function(data) {
                 $('#posts').html(data);
               }
      });
    });
    

    将此代码放入页面所包含的javascript文件中。您需要用实际的url字符串替换上面的“posts\u-partial\u-path”,在javascript代码中Rails帮助程序不可用。阅读以下关于使用jquery进行Ajax调用的信息: http://api.jquery.com/jQuery.ajax/ . 像冠军一样工作。

    沃尔特吉列