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