Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquerymobile会断开链接。正确的用法是什么?_Jquery_Jquery Mobile_Hyperlink - Fatal编程技术网

jquerymobile会断开链接。正确的用法是什么?

jquerymobile会断开链接。正确的用法是什么?,jquery,jquery-mobile,hyperlink,Jquery,Jquery Mobile,Hyperlink,我将jQuery Mobile添加到我的项目中,因为我希望滑动事件触发引导转盘滚动。在用它编写了一天左右的代码后,我注意到内部链接不再工作。 我可以通过以下两个页面test1.html可靠地再现这一点: <html> <head></head> <body> <a href="test2.html">Another page</a> <script src="https://ajax.googleapis.co

我将jQuery Mobile添加到我的项目中,因为我希望滑动事件触发引导转盘滚动。在用它编写了一天左右的代码后,我注意到内部链接不再工作。 我可以通过以下两个页面test1.html可靠地再现这一点:

<html>
<head></head>
<body>
  <a href="test2.html">Another page</a>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.2/jquery.mobile.min.js">
  </script>
</body>
</html>

和test2.html:

<html>
<head></head>
<body>
  <a href="test1.html">First page</a>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
  </script>
  <script src="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.2/jquery.mobile.min.js">
  </script>
</body>
</html>

当我单击该链接时,jQuery代码将抛出一个已处理的异常,该异常被吞没,但目标页面从未加载到浏览器中。当我删除jQuery Mobile时,它以正常方式工作

我已经看到-添加
数据ajax=“false”
似乎可以解决问题,但这真的有必要吗?那么jQuery Mobile有什么意义呢


$.mobile.ajaxEnabled=false
未执行任何操作。我也在Github上遇到过,希望这个问题只在链接到非jQuery Mobile页面时发生,但事实并非如此。

这是jQuery Mobile所独有的

首先,如果您只需要使用一种功能,就不要将jquerymobile与其他框架混合使用。在这种情况下,您应该定制jQuery Mobile并只使用/构建所需的功能。找到它

在您的情况下,您使用的是完整的jQuery移动框架,它将超过您的整个项目。jQuery Mobile使用AJAX来处理页面管理,这意味着它将把页面加载到DOM中,使它们尽可能平滑地运行

使用多个HTML模板时,只有第一个HTML文件被完全加载到DOM中。当您打开另一个页面时,jQuery Mobile将剥离头部并仅加载带有data role=“page”属性的div,因为您没有这样的div页面转换将失败

当您禁用AJAX加载数据AJAX=“false”属性时,您将强制jQuery Mobile使用经典页面处理

基本上只需遵循我的第一条建议,仅使用您真正需要的功能重建jQuery Mobile。只有当您打算将完整的jQuery移动框架用作UI框架时,才使用它,而不是其他任何东西,永远不要


如果您需要更多信息,请随时问我。

可能是您错过了jQuery Mobile的全部要点;它的整个导航系统是ajax驱动的。关闭ajax,您将看到一个没有生命的常规站点。最小的构建块是一个页面。因此,如果您的标记中没有页面,我甚至不会开始回答您的问题。我也看不到css!谢谢,非常感谢。花了30秒构建和集成了一个仅限touch events的定制版jQuery Mobile。这个答案在2017年凌晨1:35救了我一命。哈哈,不要承认:)2017年也救了我一命:P