Jquery Mobile - $ .mobile.changepage没有加载外部.JS文件

gab*_*m10 20 javascript jquery html5 jquery-mobile

所以我很难$.mobile.changePage正常运作.我称之为:

$.mobile.changePage( "DataformsM-AddRecord.html", { transition: "slide"} );
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,当加载HTML页面时,没有包含任何外部.js(我写的实际做某事的文件).我正在遵循重要的装载惯例

-Jquery
-(CUSTOM JS)
-Jquery Mobile
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么没有正确加载?此外,页面显示功能也没有被解雇,这很奇怪.它看起来像这样:

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

    loadFormFields();

});
Run Code Online (Sandbox Code Playgroud)

现在页面被渲染,但没有任何功能发生.如果我破解它并做这样的事情:

document.location.href="DataformsM-AddRecord.html";
Run Code Online (Sandbox Code Playgroud)

它将正常运作.

Jas*_*per 43

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

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

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

此外,您可以将JavaScript代码放在data-role="page"元素中,当jQuery Mobile对其进行AJAX加载时,它将被包含在内.

UPDATE

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