0

Rails アプリで問題が発生しています。私はjquerymobileを使用していますが、画面を4つの等しいセクションに分割するランディングページを作成したいときに問題が始まりました。www.kiwilive.com にアクセスすると、私の言いたいことがわかるでしょう。

これが私が問題を再現する方法です。

www.kiwilive.com にアクセスしてください。すべて問題なく表示されます。これは、tempusers コントローラーの「新しい」アクションです。ウィンドウは次の JavaScript でサイズ調整されます

$(document).on('pageshow', function (event, ui) { 
windowHeight = $(window).height();
windowWidth = $(window).width();
divHeight = (windowHeight)/2; // heights of your header/footer
$('#splash_logo').css({width: "50%", height: divHeight+"px"});
$('#splash_speechBubble').css({width: "50%", height: divHeight+"px"});
$('#splash_mobileIcon').css({width: "50%", height: divHeight+"px"});
$('#splash_mailIcon').css({width: "50%", height: divHeight+"px"});
});

入力ボックスに「jeff」と入力します。

2 番目のボタン「Start my kiwi」をクリックします。

「jeff」キーワードは既に使用されているため、コントローラーはフラッシュ メッセージを表示し、このコードを介して root_path にリダイレクトする必要があります (これは確実に呼び出されます)。

flash[:alert] = "Your kiwi is already being used.  Please try a different word!"
redirect_to root_path and return

ただし、リダイレクトが発生した後、javascriptを再実行できないため、ウィンドウのサイズ変更がうまくいきません。

検索の結果、JQM に「pageshow」イベントを使用する必要があることがわかりました。それでもうまくいきません。また、「スクリプト」タグは、application.html.erb ファイルから次のようにページ要素内にあるようです。

<body>
 <div data-role="page" id="mainpage" data-theme="b" data-url="<%= request.fullpath%>"> 
<% if flash.count > 0 %>
  <% flash.each do |key, value| %>
      <div class="alert alert-<%= key %>">
          <%= value %></div>
  <%end%>
<%else%>
<%end%>
    <%= yield %>
    <%= render 'layouts/footer' %> 
</div>
</body>

私はアイデアがなく、あらゆる種類の検索で何も見つかりませんでした。助けてください!ありがとう、ジェフ

4

1 に答える 1