【问题标题】:How to load a new stylesheet when switching from JQuery Mobile site to PC site从 JQuery Mobile 站点切换到 PC 站点时如何加载新样式表
【发布时间】:2013-02-11 20:42:00
【问题描述】:

我将 JQuery Mobile 用于我的移动网站,并通过 Railscast#199mobile_device? 方法在该网站和我正常的完整 PC 网站之间切换

application_controller.rb

before_filter :prepare_for_mobile

def mobile_device?
  if session[:mobile_param]
    session[:mobile_param] == "1"
  else
    request.user_agent =~ /Mobile/
  end
end
helper_method :mobile_device?

def prepare_for_mobile
  session[:mobile_param] = params[:mobile] if params[:mobile]
  if mobile_device?
    if request.format == :js
      request.format = :mobilejs
    else
      request.format = :mobile
    end
  end
end

此方法允许我从我的 JQuery 移动站点切换到我的 PC 站点。

<%= link_to "PC Site", :mobile => 0 %>

但是,它不会加载 PC 站点样式表。因此,必须重新加载页面第二次才能使 CSS 生效。

如何在第一次尝试时加载 CSS?

编辑:

我的样式表分别添加到application.html.erbapplication.mobile.erb

application.html.erb

<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>

application.mobile.erb

<%= stylesheet_link_tag "mobile" %>
<%= javascript_include_tag "mobile" %> # this is where my jquery mobile js file is

【问题讨论】:

  • 如何包含样式表?
  • 嗨@rails。我添加了一个解释作为新的编辑。我有两个独立的应用程序布局,每个布局都有自己的样式表。

标签: javascript css ruby-on-rails


【解决方案1】:

问题是 jquery Mobile 默认使用 AJAX,所以我需要做的就是禁用它,如下所示。

<%= link_to "PC Site", :mobile => 0, "data-ajax" => "false" %>

【讨论】:

    猜你喜欢
    • 2013-08-19
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多