2011-11-17 40 views
0

我在使用jQuery的Rails 3上。我在應用程序中遇到了一個小問題,那就是如何處理來自同一個操作的多個函數的響應。迴應同一場演出中不同的js功能?

在我的Show動作中,我有兩件事情,Ajax分頁和輕量級實時搜索(通過Ryan Bate的Railscasts)。阿賈克斯這些看起來像:

分頁:

$(function() { 
    $(".pagination a").live("click", function() { 
    $.getScript(this.href); 
    return false; 
    }); 
}); 

和搜索:

$(function() { 
    $("#songs_search input").keyup(function() { 
    $("#search_songs ul").show(); 
    $.get($("#songs_search").attr("action"), $("#songs_search").serialize(), null, "script"); 
    return false; 
    }); 
}); 

上述這些問題都工作正常。我正在努力的是在我的show.js.erb文件中對這些腳本做出響應,我不知道如何僅在同一時間響應這些操作之一,我的show.js.erb文件如下所示:

$("#list_songs").append("<%= escape_javascript(render(@list_songs)) %>"); #pagination 
$("#search_songs").html("<%= escape_javascript(render("songs/search")) %>"); #searching 

問題是,對於搜索中的每個keyup,show.js.erb文件都會響應並追加更多分頁。如何在適當的腳本運行時將這些響應隔離開來?

感謝

回答

1

您可以發送腳本變量表示該行動被稱爲(點擊或KEYUP),然後當你這樣做此時,相應的動作響應,添加分頁,或顯示結果。

+0

新手101後續問題:我是否也可以命名我的函數,然後返回true,在執行響應之前檢查函數是否爲真? – Kombo