0

我正在尝试使用 jQuery Mobile 构建一个 Web 应用程序。在我的桌面上进行测试时,一切都按预期工作。在 Android(3.2 和 4.0.3)上,导航到第二页后似乎禁用了 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>

我的第二页(即 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 中,文档就绪事件被调用一次。链接的页面加载到相同的 DOM 中并触发页面初始化。

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

这是另一个问题:

jQuery Mobile 委托 vs 实时 vs 绑定

于 2012-07-10T12:52:05.533 回答