在同一个show动作上响应不同的js函数?

时间:2011-11-17 16:37:54

标签: javascript jquery ruby-on-rails ruby-on-rails-3

我使用jQuery在Rails 3上。关于如何处理来自同一操作的多个函数的应用程序,我遇到了一个小问题。

在我的Show动作中,我有两件事情,Ajax分页,然后是轻量级的实时搜索(通过Ryan Bate的Railscasts)。这些的Ajax看起来像:

分页:

$(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文件如下所示: / p>

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

问题是,对于搜索的每个密钥,show.js.erb文件都会响应并添加更多分页。如何在运行适当的脚本时将这些响应隔离开来?

由于

1 个答案:

答案 0 :(得分:1)

您可以向脚本发送一个变量,表示称为它的操作(点击或键盘),然后当您收到响应时,您可以执行适当的操作,添加分页或显示结果。