在使用jQuery Mobile进行AJAX页面跳转时,常出现目标页面CSS与JS失效的问题。其根本原因在于框架仅加载指定div内的内容至DOM。通过将所需的CSS和JS代码置于带有data-role="page"属性的div内部,可确保资源被正确加载并生效,从而解决样式与脚本丢失的现象。
jQuery Mobile AJAX跳转样式与脚本失效问题
在使用AJAX方式进行页面跳转时,从a.html跳转至b.html后,b.html中定义的CSS样式以及JavaScript脚本均无法生效。
修复方案与原理说明
解决方案如下:
将b.html页面所需引用的CSS样式文件及JavaScript脚本代码,统一放置在包含data-role="page"属性的div容器内部。
原理解析:
jQuery Mobile在执行AJAX跳转时,仅会将目标页面中位于div(即data-role="page"定义的区块)内部的内容加载至DOM树中,而该div外部的代码则不会被加载。因此,若CSS或JS代码位于该div之外,便会导致其失效。