从JQuery Mobile站点切换到PC站点时如何加载新样式表

时间:2013-02-11 20:42:00

标签: javascript css ruby-on-rails

我正在为我的移动网站使用JQuery Mobile,并通过Railscast#199

中的mobile_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

1 个答案:

答案 0 :(得分:0)

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

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