一尘不染

jQuery Mobile-$ .mobile.changepage不加载外部.JS文件

javascript

因此,我很难$.mobile.changePage正常工作。我这样称呼它:

$.mobile.changePage( "DataformsM-AddRecord.html", { transition: "slide"} );

但是由于某种原因,在加载HTML页面时,不包含任何外部.js(我编写的实际上用于执行某些操作的文件)。我遵循以下重要的加载约定

-Jquery
-(CUSTOM JS)
-Jquery Mobile

有谁知道为什么没有正确加载?另外,pageshow函数也不会被触发,这很奇怪。看起来像这样:

$("div[data-role*='page']").live('pageshow', function(event, ui) {

    loadFormFields();

});

现在,页面已呈现,但是没有任何功能发生。如果我入侵它并执行以下操作:

document.location.href="DataformsM-AddRecord.html";

它将正常运行。


阅读 322

收藏
2020-05-01

共1个答案

一尘不染

jQuery Mobile不会将整个页面拉入dom,它会抓取第 一个 data-role="page"元素及其后代,并将其拉入当前dom。

因此<head>,不会包含该文档中的任何脚本。

我通常将网站的所有功能JavaScript放在索引页面上,然后将外部页面加载到dom中时,它们可以从已经加载的脚本中受益。

另外,您可以将JavaScript代码放置在data-role="page"元素内,并且当jQuery
Mobile完成页面的AJAX加载时,它将包含在其中。

更新

一个好的系统是将所有JS放入一个包含文件,并将其包含在站点的每个页面上。如果将页面通过AJAX引入DOM,则将被忽略,但是如果有人刷新了您网站中的某个位置,则JS将可用。

2020-05-01