0

我有这个奇怪的问题,如果转到我的 index.html 页面(使用 jQuery Mobile 构建的网站),它有一个带有按钮的表单,那么我可以多次单击该按钮,这将生成一个警报(看看是否按钮正在工作)并转到另一个名为 main.html 的页面。当我单击按钮时我会收到警报,并且我也会转到另一个页面。现在,如果我转到 main.html,然后再次返回 index.html 并再次单击该按钮,那么它不会产生警报,也不会返回到 main.html 页面。

我有以下按钮代码:

    $(document).ready(function() {    
     //event handler for submit button
     $("#btnSubmit").click(function () {
          alert('fdfs');
          window.location.replace("main.html");
          return false;
    });
});

总结:当我点击按钮时,它会产生一个警报,它会带我到 main.html,但是如果我用这个按钮回到页面,那么它就不会发出警报,也不会再改变页面了..

解答者: 而不是使用:

window.location.replace("main.html");

我用了:

$.mobile.changePage('main.html');

这是因为我使用 Jquery Mobile。

我还要感谢 Valjas 提供有关导航的额外信息。

4

2 回答 2

2

window.location.replace()正如@jackwanders 所说,使用是一个错误。

使用此变量会发送一个未在浏览器(或 PhoneGap)历史记录中注册的 HTTP 请求。index.html即使您单击 ,您的应用程序仍会认为它在内部#btnSubmit

解决方案是使用另一个函数:window.location.href = "main.html"

此外,您不需要在document.ready函数内编写绑定。这仅在您想在页面加载后立即执行操作时才有用 - 但由于您进一步等待用户单击链接,因此您不需要它

于 2012-08-07T03:18:37.630 回答
2

您正在使用window.location.replace它将当前文件中的 HTML 替换为您链接到的文件中的 HTML。您需要使用window.location.hrefwhich 将转到另一个页面。

更多信息在这里:http ://www.w3schools.com/jsref/obj_location.asp

- 更新 -

格式不同window.location.replace

window.location.href = 'main.html';

如果您仍然有问题,请尝试:

window.open('main.html', _blank);

这将在新选项卡中打开页面。

- 更新 -

由于您使用的是 jQuery Mobile,而不是使用 jQuery 单击绑定,您应该只使用 jQuery Mobile API。

以下是一些应该有帮助的页面:

http://jquerymobile.com/demos/1.0a4.1/docs/pages/link-formats.html

http://jquerymobile.com/demos/1.0a4.1/docs/pages/link-formats.html#docs-navmodel.html

http://jquerymobile.com/test/docs/pages/page-navmodel.html

于 2012-08-07T03:19:28.497 回答