Jquery 在 IE 中使用锚点进行移动重定向

Jquery Mobile redirect with anchor in IE

我的代码是 运行 jquery 移动版 1.4.5。当我提交表格时。该网站将调用 login.php,如果成功,它将重定向到 #customer 锚点。如果不是,它将重定向到#error 弹出窗口。 问题是这在 chrome 和 firefox 上按预期工作,但它在桌面 IE11 上不起作用。

$(document).ready(function() {
  $('#loginform').submit(function(e) {
    e.preventDefault();
    $.ajax({
      type: "POST",
      url: 'login.php',
      data: $(this).serialize(),
      success: function(data) {
        if (data === 'login') {
          window.location = '#customer';
        } else {
          window.location = '#error';
        }
      }
    });
  });
});
<form id="loginform" method="post">
  <div class="ui-field-contain">
    <label for="storeID">Store ID:</label>
    <input type="text" name="usn" id="usn">
    <label for="password">Password:</label>
    <input type="password" name="upw" id="upw">
  </div>
  <input type="submit" Value="Login" />
</form>

JQM 有自己的页面导航小部件。它使用 Ajax 将页面加载到 Dom 中,或者一旦加载到 Dom 中,它就会指向该页面。使用的Widget使用Change Method调用Pagecontainer。

现在我不知道 IE11,也从未使用过它,但根据 JQM 用户指南,您需要使用以下方式。

http://api.jquerymobile.com/pagecontainer/

(示例中的页面转换设置为none)您可以从这里选择一个--http://demos.jquerymobile.com/1.4.5/transitions/

 $( ":mobile-pagecontainer" ).pagecontainer( "change", "#customer", { transition: "none" })

如果你想要反向转换,即反方向使用 reverse true

 $( ":mobile-pagecontainer" ).pagecontainer( "change", "#customer", { transition: "none", reverse: true })

对于错误对话框,JQM 也有一个小部件。

http://api.jquerymobile.com/dialog/

打开错误对话框

$.mobile.changePage( "#error", { 角色: "dialog" } );