提前感谢您查看此 jQuery Mobile(版本 1.1.0)问题。
我的第一个问题是:你在每次页面加载和每次 ajax 页面调用时使用什么函数(它们似乎是 2 个独立的野兽)?我希望它们每次都运行。
$(document).bind('pageinit',function(){
console.log('Does this work for you?');
});
我有几个使用 jQuery 代码实现各种功能的独立 jQuery-Mobile 驱动的 HTML 页面。其中一些功能包括在几个页面上发生的基于触摸的滑块(royalSlider),一些代码嗅探是否存在某些元素(例如固定的副页眉或页脚)以调整页面的边距,从而阻碍主要内容通过重叠元素,而其他 js 是一个脚本,它使用特定类触发每个图像的 AJAX 调用的每个元素。
问题是:我是否需要为每个页面的每个 ID 调用一个实时 pageinit 函数?我需要为每个页面使用 pageinit 和 pagecreate 吗?
例如,假设我有一个名为 face() 的函数,它可以查找是否有页脚,因此我可以向 .container 添加一个类以添加底部边距,从而遮挡主要内容。
从理论上讲,我不能运行这样的函数,在登陆页面或通过 AJAX 拉入页面时点击每个活动页面吗?
$('[data-role="page"].ui-page-active').live('pageinit', function(){
face();
});
不是:
$("#brand-grid,#product-grid,#main-grid,#trends").live('pageinit', function() {
face();
});
我发现当我首先登陆需要偏移的页面时它可以工作,但是当你转到另一个页面时它不再工作。这是因为 DOM 中有 2 个 div[data-role="page"] 并且我的命令太模棱两可了吗?还是因为 pageinit 仅适用于原始页面而不适用于 AJAX 内容?
我的下一个问题:从页面导航后如何销毁页面?如果可以的话,我不希望平板电脑运行 2 个 RoyalSlider 实例。
这是我的尝试:
$('[data-role="page"].ui-page-active').live('pageinit', function(){
$('[data-role="page"]:not(.ui-page-active)').live('pageremove');
});
您拥有的任何见解都会很棒,我只想避免内存泄漏和性能下降。除了这些气质问题之外,JQM 的开发非常棒。谢谢你。