Jquery mobile Jquerymobile-$.mobile.changepage
我想从.js文件中打开.html文件。所以我使用了$.mobile.changePage(“file.html”)。在file.html中有file.js。但是当调用中的file.html时,file.js不会调用 提前谢谢 first.jsJquery mobile Jquerymobile-$.mobile.changepage,jquery-mobile,Jquery Mobile,我想从.js文件中打开.html文件。所以我使用了$.mobile.changePage(“file.html”)。在file.html中有file.js。但是当调用中的file.html时,file.js不会调用 提前谢谢 first.js $.mobile.changePage ("file.html"); file.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" />
$.mobile.changePage ("file.html");
file.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jQuery Mobile Framework - Dialog Example</title>
<link rel="stylesheet" href="jquery.mobile-1.0a2.min.css" />
<script src="jquery-1.4.4.min.js"></script>
<script src="jquery.mobile-1.0a2.min.js"></script>
<script src="../Scripts/file.js"/> // Could not imported
<script src="../Scripts/helperArrays.js"/> // Could not imported
<script src="../Scripts/globalVariables.js"/> // Could not imported
</head>
<body>
<div data-role="page">
<div data-role="header" data-nobackbtn="true">
<h1>Vaults</h1>
</div>
<!-- <div data-role="content" data-theme="c" id="contentVault">
<a href="Views/searchPage.html" data-role="button" data-theme="b">Sample Vault</a>
<a href="Views/searchPage.html" data-role="button" data-theme="c">My Vault</a>
</div> -->
<div data-role="content" id="content">
<ul id="listview" data-role="listview" data-inset="true" data-theme="e" data-dividertheme="b">
<li id="listdiv" data-role="list-divider">List of Items</li>
</ul>
</div><!-- /content -->
</div>
</body>
</html>
jQuery移动框架-对话框示例
//无法导入
//无法导入
//无法导入
拱顶
项目列表
请帮助我。Jquery mobile通过AJAX获取页面并将其内容添加到当前页面。 我看到一些关于将页面标题更改为传入标题的通知,因此他们(计划?)正在访问标题,但目前jquery mobile在加载页面时似乎没有加载外部js
更重要的是,如果您使用$(document).ready(),它将不会被触发,因为它是AJAX,当jQM通过AJAX加载另一个页面时,它只会拉入div[data role=“page”]中的任何内容,而不会拉入其他内容,比如头部
因此,如果您愿意,可以在这个div中包含任何JS/CSS,问题是,如果多次访问这个页面,任何CSS都会累积,但JS的问题更严重 基本上,每个页面都会附加到DOM中,因此如果使用$('div.someClass')这样的全局选择器,JS会在整个DOM(加载的每个页面)上运行,即使使用ID也不是一个完美的解决方案,因为如果可以链接到同一页面两次
对于较小的站点
$.mobile.changePage ("file.html");
我通过将所有CSS移到一个文件中解决了这个问题,对于每次加载页面时要运行的JS代码,我绑定到pageinit和pageshow jQM事件:
<script type="text/javascript">
$("div:jqmData(role='page'):last").bind('pageinit', function(){
//your code here - $.mobile.activePage not declared
});
$("div:jqmData(role='page'):last").bind('pageshow', function(){
//your code here - $.mobile.activePage works now
});
</script>
$(“div:jqmData(role='page'):last”).bind('pageinit',function(){
//此处的代码-$.mobile.activePage未声明
});
$(“div:jqmData(role='page'):last”).bind('pageshow',function(){
//这里的代码-$.mobile.activePage现在可以使用了
});
pageinit事件在加载页面时仅运行一次(加载页面后,如果您导航回该页面,即使通过“后退”按钮,也不会再次触发该事件,则会保留在内存中),而pageshow则在每次显示页面时都会触发,例如,当您通过浏览器上的“后退”按钮导航回该页面时
pageinit在DOM存在时运行,pageshow事件仅当您有一些依赖于呈现的DOM的代码,并且您需要通过$.mobile.activePage快速引用活动页面或更改某些数据,并且每次显示时都需要刷新此页面时才运行。在大多数情况下,我只将pageinit用作document.ready For jQM并将我的事件绑定到那里。对静态元素使用bind,而不是对动态元素使用live,因为live事件在文档根上侦听,而您希望在page div上侦听
对于较大的站点
$.mobile.changePage ("file.html");
对于大型站点,将实时事件绑定到任何页面并处理页面类型都有好处,这样js代码就不会被多次加载
如果你有一个外部js文件,比如说helper函数,你只需要把它放在你所有页面的头上一次(如果没有太多的话),如果你有一个非常大的站点,你可以通过跟踪服务器端加载了哪些js文件来做得更好
所有这些都可以通过不使用AJAX加载新页面来避免,所以请考虑这种转换/加载效果是否值得
*以下是我如何处理大型jQM站点:*
$(文档)。在('pageinit pageshow'、'div:jqmData(role=“page”)、div:jqmData(role=“dialog”)'上,函数(事件){
*注意:现在RequireJS可以使这变得更易于管理。Hi.我如何调用外部JS?你应该以jquerymobile的方式编写JS,作为对页面的增强。将其链接到
你是否创建过该教程?我在meet.JS活动上有一个关于它的演讲/演示,我必须将其形成一个教程并发布。访问jquerymobiledictionary.pl从现在开始几天,到那时它可能已经存在了。这是我不喜欢JQM作为框架的众多原因之一。我不推荐任何认真关注移动开发的人使用它。