我在哪里放$ .mobile.hidePageLoadingMsg();禁用所有jQuery Mobile加载消息?

时间:2012-04-15 13:07:41

标签: ruby-on-rails jquery-mobile

这行代码究竟在哪里用于Rails应用程序?哪个文件,还有其他周围的语法?有没有人有一个如何禁用jQuery加载消息的完整示例?我已经阅读了文档,但我认为只有一些非常基本的东西我没有在文档中明确说明。

由于

的application.js

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

application.mobile.js

//= require jquery.mobile

application.css

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

application.mobile.css

*= require_self
*= require jquery.mobile

的Gemfile

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

application.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>

3 个答案:

答案 0 :(得分:1)

我认为你可能会误解$.mobile.hidePageLoadingMsg();方法。我当然可以理解这种混乱。在JQM中,您可以使用$.mobile.showPageLoadingMsg();以编程方式显示加载消息,然后使用$.mobile.hidePageLoadingMsg();隐藏消息。您可以在自己的某些内容中使用它。

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

<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引用之间才能正常工作。您可以找到更多默认设置here

答案 1 :(得分:0)

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

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

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

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

如果仍然没有做到这一点,你必须深入研究app / assets / javascripts / application.js清单,然后在加载jquery的那一行之后输入一个新行,该行将调用包含该一行代码的javascript文件。

答案 2 :(得分:0)

好的,基本上,这里的故事的道德是jQuery Mobile的DONT用户Gems。说他们不工作将是轻描淡写...他们完成了95%的工作,但随后他们呕吐得如此惊人,以至于认为你试图首先使用它们几乎是滑稽的。这些宝石似乎(1)具有与Rails和/或jQuery Mobile远程相关的字面意义更新的天生爆炸能力,(2)被他们的github所有者突然和莫名其妙地删除,(3)抛出非常罕见的自动化错误,以及(4)所有这些都包含了比使用jQuery Mobile热链接时更多行(对破坏而言非常敏感)的代码所带来的巨大好处。

为自己节省大量的麻烦,只需使用热门链接。如果没有,你将赢得一个由zQuery Mobile Gems,Inc赞助的suckville全额付费假期(顺便提一下,它的最新版本几乎保证过时且完全没用)。

application.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" %>