0

ちょっと説明が難しい。しかし、ここのウェブサイトでは:

http://beerportfolio.com/mobile/

左上のボタンは、サイドバー ナビゲーションを開きます。

ユーザーがログイン情報を入力すると、ページは次のコードで自分自身を呼び出します。

<h5>Sign In</h5>

 <form name=\"input\" action=\"index.php\" method=\"post\">
 User Name: <input type=\"text\" name=\"user\"  id=\"user\" />
 </p>
 Password: <input type=\"password\" name=\"password\" id=\"password\" />
 <div class=\"blank-divider\"></div>    
    <p>
 <input type=\"submit\" name = \"login\" value=\"login\" />
 </p>
 </form>

ログインの成功またはログインの失敗のいずれかでページがそれ自体を呼び出すと、スライドアウトはもう開きません。

jquery のコードは次のとおりです。

<!--Toggle Menu-->
<script type="text/javascript">
            $(function() {
                $('#navigation').click(function() {
                    $('.navigation').slideToggle('fast');
                    return false;
                });
            });
</script>

問題を再現する方法を要約するには、上記のリンクにアクセスしてください。右上のボタンを試して、サイドバーが飛び出したり外れたりするのを確認してください。次に、ランダムなログイン情報を入力して、ログインを試みます。次のページが読み込まれたら、左上のログイン ボタンをもう一度試してみます。サイド バーは表示されません。

ここで何が起こっているのですか?

4

2 に答える 2

1

私が指摘した限りでは、ページが読み込まれたときに「ナビゲーション」ID を持つ要素はありません。動的に追加されている場合は、.on を使用して本体にバインドしない限り機能しません。

$('#navigation') を $('.showMenu') に変更したところ、完全に機能しました。

于 2012-10-31T01:05:01.050 に答える
0

さらに調査を行った結果、これはjqueryモバイルで自動的にajaxで行われるページの更新に関係していることがわかりました。

私にとっての簡単な修正はこれでした:

data-ajax="false"

フォーム要素で上記の属性を使用すると、ページ全体が強制的に更新されるため、クエリ呼び出しが機能します。

私はまだこれを理解しようとしているので、これは理想的な修正ではありません。しかし、これは今のところ簡単で汚い修正です。

于 2012-10-31T21:22:15.797 に答える