Rails& Javascript - 如何标记观看或阅读的内容?

时间:2011-02-17 22:37:02

标签: javascript jquery ruby-on-rails

如何在用户点击某行时标记某些内容。 以下是我要解释的示例:http://www.dba.dk/dyr/hunde-og-tilbehoer/racehunde/race-labrador/尝试点击一行然后返回。您将看到该行标有一个复选标记。所以你知道你已经看过了。

如何创建类似的东西?

1 个答案:

答案 0 :(得分:0)

您正在寻找保存AJAX历史状态。可以在这里找到两个惊人的Rails和Javascript教程:

  1. http://railscasts.com/episodes/246-ajax-history-state

  2. http://railscasts.com/episodes/175-ajax-history-and-bookmarks

  3. 第一个链接将引用第二个链接。

    来自Ryan Bate的网站| Railscasts.com

    /* application.js */
    if (history && history.pushState) {
      $(function() {
        $("#products th a, #products .pagination a").live("click", function(e) {
          $.getScript(this.href);
          history.pushState(null, document.title, this.href);
          e.preventDefault();
        });
        $("#products_search input").keyup(function() {
          $.get($("#products_search").attr("action"), $("#products_search").serialize(), null, "script");
          history.replaceState(null, document.title, $("#products_search").attr("action") + "?" + $("#products_search").serialize());
        });
        $(window).bind("popstate", function() {
          $.getScript(location.href);
        });
      });
    }
    
    /* products/index.js.erb */
    $("#products").html("<%= escape_javascript(render("products")) %>");
    document.title = "<%= escape_javascript("#{params[:search].to_s.titleize} Products by #{(params[:sort] || 'name').titleize} - Page #{params[:page] || 1}") %>";