Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
初始化多页jQuery Mobile的最佳方法_Jquery_Jquery Mobile - Fatal编程技术网

初始化多页jQuery Mobile的最佳方法

初始化多页jQuery Mobile的最佳方法,jquery,jquery-mobile,Jquery,Jquery Mobile,这有点让人困惑,所以我想知道现在初始化多页应用程序的正确方法是什么 <head> // include multiple JS files <script> // page init </script> </head> 我注意到include JS文件在页面初始化之前都是“run”的。从JS文件调用“page init”中的函数是不可能的。。。现在它们看起来都像: // ab.js function a() {} functio

这有点让人困惑,所以我想知道现在初始化多页应用程序的正确方法是什么

<head>
// include multiple JS files

<script>

// page init   

</script>
</head> 
我注意到include JS文件在页面初始化之前都是“run”的。从JS文件调用“page init”中的函数是不可能的。。。现在它们看起来都像:

// ab.js

function a() {}

function b() {}

// so on
JS文件中的所有函数是否也应该在某种init中?比如:

// JS file ab.js
$(function()
{
    function a() {}
    function b() {}
});

这个问题可能有点不清楚,但我只是感到困惑,因为JQM一直在变化,所以我想知道今天“最好”的方式是什么

首先,您需要知道jQuery Mobile 1.4事件之间的区别;在页面上发射一次的和在页面容器上连续发射的

要添加侦听器,例如,
单击
点击
更改
…等。将它们及其自定义函数包装在
pagecreate
中。该事件每页触发一次,因此您需要指定
#pageID
,以便仅将这些侦听器添加到该页。如果您未能指定页面,则每当页面上发出
pagecreate
时,这些侦听器将被反复添加

您还可以使用
pagecreate
操作DOM并动态注入元素

$(document).on("pagecreate", "#pageID", function () {
   <!-- listeners -->
});

更新 使用自执行函数
$(函数(){})仅限于jQM中的特定情况。它们用于初始化可在外部使用的小部件,即面板、工具栏和弹出窗口


代码包装在$(函数(){})中将在加载后立即执行。

$(“div[data role='page'])。在(“pagecreate”,function()上,这是一个完全失败的操作。现在没有任何东西可以工作
$(文档)
而不是
$(“#pageID”)
。将事件委托给页面。我为所有侦听器提供了一个特定的js文件。该文件包含在中。而且该js文件以
$(function()开头)
。我的“main”html文件以$(document)开头。在(“pagecreate”@BakedInhalf,当您在
$(function(){})中包装任何函数时;
一旦加载JS文件,它将立即运行。它被称为。啊,好吧。我的侦听器似乎可以用$(function(){})包装5942
$(document).on("pagecreate", "#pageID", function () {
   <!-- listeners -->
});
$(document).on("pagecontainershow", function () {
  var activePage = $.mobile.pageContainer.pagecontainer("getActivePage"),
      activePageID = activePage[0].id;

  if (activePageId == "pageA") {
    $(elm1).hide();
    $(elm2).show();
  }
});