0

Rails 应用程序的那行代码到底在哪里?哪个文件,是否有任何额外的语法?有没有人有一个完整的例子来说明如何禁用 jQuery 加载消息?我已经阅读了文档,但我认为我缺少一些非常基本的东西,但文档中没有明确涵盖。

谢谢

应用程序.js

//= require jquery
//= require jquery_ujs
//= require jquery.mobile

应用程序.mobile.js

//= require jquery.mobile

应用程序.css

*= require_self
*= require jquery.mobile
*= require scaffolds.css

应用程序.mobile.css

*= require_self
*= require jquery.mobile

宝石文件

source 'http://rubygems.org'

gem 'rails', '3.2.2'

# Bundle edge Rails instead:
# gem 'rails',     :git => 'git://github.com/rails/rails.git'

gem 'pg'
gem 'thin'

group :assets do
 gem 'sass-rails',   '~> 3.2.3'
 gem 'coffee-rails', '~> 3.2.1'
 gem 'uglifier'
end

gem 'jquery-rails'
gem 'mobylette'
gem 'jquery_mobile_rails'

group :test, :development do
 gem 'rspec'
 gem 'rspec-rails'
 gem 'sqlite3'
end

应用程序.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>Mobile Version!</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>

  <%= javascript_include_tag "application" %>
  <script type='text/javascript'>
    $.mobile.hidePageLoadingMsg();
  </script>
  <%= stylesheet_link_tag    "application" %>

  <%= javascript_include_tag "application.mobile.js" %>
  <%= stylesheet_link_tag    "application.mobile.css" %>

  <%= csrf_meta_tags %>

</head>
<body>
<div data-role="page">

    <%= yield %>

  <div data-role="footer" data-position="fixed">
    <div data-role="navbar">
      <ul>
        <li>
          <%= link_to notes_path, :class => ("ui-btn-active" if action_name == 'index'), :"data-icon" => "home", :"data-iconpos" => "top" do %>
            Home
          <% end %>
        </li>
        <li>
          <%= link_to new_note_path, :class => ("ui-btn-active" if action_name == 'new'), :"data-icon" => "plus", :"data-iconpos" => "top" do %>
        New Note
          <% end %>
         </li>
        </ul>
    </div>
  </div>
</div>
</body>
</html>
4

3 回答 3

1

我想你可能$.mobile.hidePageLoadingMsg();有点误解了这个方法。不过,我当然可以理解这种困惑。在 JQM 中,您可以使用编程方式显示加载消息$.mobile.showPageLoadingMsg();,然后您可以使用$.mobile.hidePageLoadingMsg();隐藏消息。您可以在自己的某些内容的 ajaxing 中使用它。

要禁用加载消息,您可以在此处使用我的示例。

<script src="//code.jquery.com/jquery-1.7.1.min.js" type="text/javascript"></script>
<script>
$(document).bind("mobileinit", function(){
  $.mobile.loadingMessage = false;
});
</script>
<script src="//code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>

移动初始化绑定用于配置 JQM 的默认值。它必须放在您的 jQuery 和 JQM 引用之间才能正常工作。您可以在此处找到更多默认设置。

于 2012-04-16T00:36:57.373 回答
0

要让它在所有页面上始终运行,最好的选择可能是在 app/views/layouts/application.html.erb 中。这假设您正在使用应用程序范围的布局。如果您刚刚使用 3.X 创建了一个新的 rails 应用程序,那么您就应该这样做。

让它工作的最简单的方法就是把它放在布局的头部,(暂时忽略资产管道)。

听起来(我不确定)这是一个 jquery,你不想在运行这段代码之前等待 DOM 加载。所以我会在rails应用程序生成器放置在布局中的默认javascript_include_tag之后放入一个脚本标签:

  <%= javascript_include_tag "application" %>
  <script type='text/javascript>
    $.mobile.hidePageLoadingMsg();
  </script>

如果这仍然不能解决问题,您必须深入研究 app/assets/javascripts/application.js 清单,并在加载 jquery 的那一行之后输入一个新行,该行将调用一个 javascript 文件包含那一行代码。

于 2012-04-15T15:16:07.880 回答
0

好的,基本上,这里的故事的寓意是不要为 jQuery Mobile 用户 Gems。说他们不工作是轻描淡写的……他们完成了 95% 的工作,但随后他们吐得如此壮观,以至于认为你一开始就尝试使用它们几乎是可笑的。这些 gem 似乎 (1) 在任何与 Rails 和/或 jQuery Mobile 远程相关的内容更新时具有天生的爆炸能力,(2) 被他们的 github 所有者突然且莫名其妙地除名,(3) 抛出非常罕见和自动错误,以及 (4) 与最初仅使用 jQuery Mobile 热链接相比,包含更多代码行(顺便说一句,对中断非常敏感)带来了巨大的好处。

为自己省去很多麻烦,只需使用热链接。如果不是这样,您将赢得一个由 jQuery Mobile Gems, Inc 赞助的全部费用的带薪假期。

应用程序.html.erb

    <title>Hello</title>

    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
    <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>

    <%= stylesheet_link_tag    "application", :media => "all" %>
    <%= javascript_include_tag "application" %>
于 2012-04-16T19:07:29.137 回答