首先是我的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_paginate
中的rails cast 114
进行无休止的滚动,但仅针对一个will_paginate
对象,而不是针对网站上的所有人。我还应该怎么做?如何在一个页面上运行此脚本?现在只有当我使用搜索控制器访问页面时它才会加载,但它会在每个.paginate
class
上运行。
答案 0 :(得分:0)
试试这个:
function mypaginate(){
if ($('body.searches').length > 0) {
if ($('.pagination').length > 0) {
.........
你也可以这样做:
if($('body.searches .pagination').length > 0){
....
编辑: 我又读了你的问题。您想要做的另一种选择是将其放在您的视图中:
<script type='text/javascript'> mypaginate(); </script>
答案 1 :(得分:0)
当您将javascript代码放入assets文件夹中时,所有这些代码都会被预编译并填充到一个存档中,因此它可用于您的所有视图。
绕过此行为的一种方法是将此javascript代码放在视图的底部,这样只有特定的视图才能访问mypaginate
函数。