我一直在關注幾個railscasts,目前有一個使用will_paginate的無盡頁面的產品列表。我想要實現railscast#240以將實時搜索添加到結果中,但似乎存在一些邏輯衝突,我不知道如何糾正。jQuery的追加或替換基於來自鐵路的呼叫?
簡單來說,內部index.js.erb的無盡的頁面需要添加使用附加產品的現有名單如下產品:
$(「#產品」)。 append('<%= j render(@products)%>');
然而,生活搜索的實現需要更換的產品,從搜索結果新產品的現有名單:
$(「#產品」)。 html('<%= j render(@products)%>');
下面是完整的塊:
$('#products').html('<%= j render(@products) %>'); // live search
$('#products').append('<%= j render(@products) %>'); // endless page
<% if @products.next_page %>
$('.pagination').replaceWith('<%= j will_paginate(@products) %>');
<% else %>
$('.pagination').remove();
<% end %>
了HTML()和append()爲各自的使用很好地工作,如果我評論一出其他作品,但如果我不發表評論一個它變得非常不可靠。
如何設置它,所以如果用戶在搜索框中鍵入它會觸發html(),並且如果用戶正在滾動觸發器append()?有什麼方法可以確定哪個事件觸發了index.js.erb調用?