0

このコード行は、Rails アプリケーションのどこに移動するのでしょうか? どのファイルで、追加の周囲の構文はありますか? jQuery の読み込みメッセージを無効にする方法の完全な例はありますか? ドキュメントを読みましたが、ドキュメントで明示的にカバーされていない、本当に基本的なものが欠けていると思います。

ありがとう

アプリケーション.js

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

application.mobile.js

//= require jquery.mobile

アプリケーション.css

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

アプリケーション.モバイル.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>
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>

mobile init バインディングは、JQM のデフォルトを構成するために使用されます。正しく機能させるには、jQuery と JQM の参照の間に配置する必要があります。その他のデフォルト設定については、こちらを参照してください。

于 2012-04-16T00:36:57.373 に答える
0

基本的に、ここでの話の教訓は、jQuery Mobile のユーザー Gem を使用しないことです。彼らが機能しないと言うのは控えめな表現です...彼らは仕事の95%を完了しますが、それから彼らは非常に見事に吐き出すので、そもそもあなたがそれらを使おうとしたと考えるのはほとんどコミカルです. これらの gem は、(1) Rails や jQuery Mobile にリモートで関連する何かが文字通り更新されると爆発する生来の能力を持っているようです。(2) 突然、不可解にも github の所有者によってリストから除外されます。(3) 非常にまれであり、 (4) 最初に jQuery Mobile ホットリンクを使用する場合よりも多くの行 (ちなみに、これは非常に壊れやすい) のコードを含めることのすばらしい利点のためです。

ホットリンクを使用するだけで、頭の痛い問題を解決できます。そうでない場合は、jQuery Mobile Gems, Inc が後援するサックビルへの全額負担の有給休暇を獲得できます (ちなみに、その最新バージョンは、時代遅れであり、まったく役に立たないことがほぼ保証されています)。

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" %>
于 2012-04-16T19:07:29.137 に答える
0

どこでも、すべてのページで、いつでも実行できるようにするには、おそらく app/views/layouts/application.html.erb を使用するのが最善の方法です。これは、アプリケーション全体のレイアウトを使用していることを前提としています。3.X を使用して新しい Rails アプリを作成したばかりであれば、それを行う場所です。

機能させる最も簡単な方法は、レイアウトの先頭に貼り付けることです (今のところ、アセット パイプラインは無視します)。

少しのコードを実行する前にDOMがロードされるのを待ちたくないjqueryのビットのように聞こえます(よくわかりません)。そこで、Rails アプリ ジェネレーターがレイアウトに配置したデフォルトの javascript_include_tag の直後にスクリプト タグを挿入します。

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

それでも問題が解決しない場合は、app/assets/javascripts/application.js マニフェストを詳しく調べて、jquery をロードする行の直後に新しい行を入力する必要があります。その行は JavaScript ファイルを呼び出します。その1行のコードが含まれています。

于 2012-04-15T15:16:07.880 に答える