Jquery Mobile - 使用$ .mobile.navigate后事件不会绑定

时间:2014-04-09 17:19:47

标签: javascript jquery html jquery-mobile mobile

当我使用$ .mobile.navigate更改页面时,页面将加载但我的自定义脚本不会绑定到元素。如果我刷新页面,自定义脚本将加载并绑定到元素。我有一个select元素可以在页面之间进行选择:

<select name="calc-Nav" id="calc-Nav">
    <option value="a.php">A</option>
    <option value="b.php">B</option>
    <option value="c.php">C</option>
</select>

这是绑定到select元素的事件:

$("#calc-Nav").on("change", function (e) {
    var opt = $("#calc-Nav option:selected").val();
    if (opt) {
        e.preventDefault();
        $.mobile.navigate(opt);
    }
});

另外,我按以下顺序链接到我的javascript文件:

<script src="jquery.js"></script>
<script src="custom-scripting.js"></script>
<script src="jquery-mobile.js"></script>

有没有人有任何想法如何使这项工作?

感谢。

编辑: 这是用于所有页面的模板 这是每个页面的标准模板。

<!DOCTYPE html>
<html>
<head>
      <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css">
</head>
<body>
    <div data-role="page">
        <div data-role="header">
            <div class="ui-field-contain">
                <select name="calc-Nav" id="calc-Nav">
                    <option value="Index.php">Home</option>
                    <option value="a.php">a</option>
                    <option value="b.php">b</option>
                    <option value="c.php">c</option>
                </select>
            </div>
         </div>
     <div data-role="main" class="ui-content">
         <div id="index">
             <h1> Form goes Here. </h1>
         </div>
     </div>
     <div data-role="footer">
         <h1>Footer</h1>
     </div>
 </div>
</body>
    <script src="http://code.jquery.com/jquery-1.9.0.js"></script>
    <script src="js/formulas.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
</html>

1 个答案:

答案 0 :(得分:0)

您需要将它们绑定到文档

尝试 -

$(document).on("change","#calc-Nav", function (e) {
    var opt = $("#calc-Nav option:selected").val();
    if (opt) {
        e.preventDefault();
        $.mobile.navigate(opt);
    }
});

还要确保在jqmobile脚本

之后添加指向自定义脚本的链接