2

首先我的javascript:

$(document).on("ready page:change", function() {

 my_paginate();
}

function mypaginate(){
if ($('body.searches').length) {
  if ($('.pagination').length) {
      ....
      ....
      url = $(' .pagination .next_page').attr('href'); // i must change this and it works... but dont understand why if i had if statement for body.searches.
      }
    }
}

而我的观点:

 <body class="<%= params[:controller] %>">

我想要的是只在带有搜索my_paginate()的一页上运行它。controller我尝试这样,但它仍然加载在每个页面上。我尝试为will_paginatelike in进行无休止的滚动rails cast 114——但只针对一个will_paginate对象,而不是针对现场的每个人。我还应该做什么?如何仅在一页上运行此脚本?现在它只有在我使用搜索控制器进入页面时才加载,但它适用于每个.paginate class.

4

2 回答 2

0

尝试这个:

function mypaginate(){
   if ($('body.searches').length > 0) {
      if ($('.pagination').length > 0) {
        .........

你也可以这样做:

if($('body.searches .pagination').length > 0){
      ....

编辑:我又读了你的问题。您想要做的另一种方法是将其放在您的视图中:

<script type='text/javascript'> mypaginate(); </script>
于 2013-08-13T11:28:58.767 回答
-1

当您将 javascript 代码放入 assets 文件夹时,所有这些代码都会被预编译并填充到一个存档中,因此您的所有视图都可以使用它。
绕过这种行为的一种方法是将此 javascript 代码放在视图的底部,这样只有特定的视图才能访问该mypaginate函数。

于 2013-08-13T11:56:10.197 回答