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

Jquery Mobile - events wont bind after using $.mobile.navigate

本文关键字:事件 绑定 navigate Mobile- 使用 Mobile Jquery      更新时间:2023-09-26

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

<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>

您需要将它们绑定到文档

尝试-

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

还要确保在jqmobile脚本

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