0

jQueryMobileを使用してWebアプリケーションを構築しようとしています。デスクトップでテストすると、すべてが期待どおりに機能します。Android(3.2と4.0.3の両方)では、2番目のページに移動した後にJavaScriptが無効になっているようです。

私の最初のページは次のようになります。

<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
  href="script/jquery.mobile-1.1.0/jquery.mobile-1.1.0.min.css" />
<script type="text/javascript" src="script/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="script/jquery.mobile-1.1.0/jquery.mobile-1.1.0.min.js"></script>
</head>
<body>
  <div data-role="page">
    <div data-role="header">
      <h3>Jetty experiments:</h3>
    </div>
    <div data-role="content">
      <ul data-role="listview">
        <li><a href="HelloWorld" data-ajax="false">Hello World</a></li>
        <li><a href="sample-form.html">Sample Form</a></li>
        <li><a href="test.jsp" data-ajax="false">Test JSP</a></li>
      </ul>
    </div>
    <div data-role="footer">
      <button id="jquery-test">JQuery Test</button>
    </div>
  </div>
</body>
<script type="text/javascript">
    $(document).ready(function() {
        $("#jquery-test").click(function(event) {
            alert("OK");
        });
    });
</script>
</html>

私の2番目のページ(つまりsample-form.html):

<!DOCTYPE html>
<html>
<head>
<title>Collects text into a database</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
  href="script/jquery.mobile-1.1.0/jquery.mobile-1.1.0.min.css" />
<script type="text/javascript" src="script/jquery-1.7.2.min.js"></script>
<script type="text/javascript"
  src="script/jquery.mobile-1.1.0/jquery.mobile-1.1.0.min.js"></script>
<script type="text/javascript" src="script/tempo.min.js"></script>
</head>
<body>
  <div data-role="page">
    <div data-role="header">
      <h3>Enter some text:</h3>
    </div>
    <div data-role="content">
      <form id="searchForm" method="get" action="SampleForm"
        data-ajax="false">
        <input type="text" name="text" /> <input type="submit"
          value="Submit" />
      </form>
      <ul id="names" data-role="listview">
        <li data-template>{{name}}</li> <!-- the template here does not work on Android -->
        <li data-template-fallback>Sorry, JavaScript required!</li>
      </ul>
    </div>
    <div data-role="footer">
      <button id="jquery-test">JQuery Test</button>
    </div>
  </div>
</body>
<script>
    var names;

    $(document).ready(function() {
        $("#jquery-test").click(function(event) {
            alert("OK"); // the alert here does not work on Android :(
        });
        names = Tempo.prepare("names")
    });

    // this binding does not work on Android
    $("#searchForm").submit(function(event) {
        event.preventDefault();

        $.getJSON("SampleForm", function(data) {
            names.render(data);
        });
    });
</script>
</html>

私が間違っていることは何ですか?BR、エイドリアン。

4

1 に答える 1

0

jQuery Mobileでは、ドキュメント準備完了イベントが1回呼び出されます。リンクされたページは同じDOMにロードされ、ページの初期化がトリガーされます。

http://jquerymobile.com/test/docs/api/events.html

ここに別の質問があります:

jQueryMobileデリゲートvsライブvsバインド

于 2012-07-10T12:52:05.533 に答える