gpt4 book ai didi

jquery mobile、pageinit、pagecreate 和冗余

转载 作者:行者123 更新时间:2023-12-01 03:00:40 28 4
gpt4 key购买 nike

提前感谢您查看此 jQuery Mobile(版本 1.1.0)问题。

我的第一个问题是:您使用什么函数在每个页面加载和每个 ajax 页面调用上运行(它们似乎是两个独立的野兽)?我希望它们每次都运行。

$(document).bind('pageinit',function(){
console.log('Does this work for you?');
});

我有几个独立的 jQuery-Mobile 支持的 HTML 页面,使用 jQuery 代码实现各种功能。其中一些功能包括一个发生在几个页面上的基于触摸的 slider (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 内容?

我的下一个问题:从页面导航后如何销毁该页面?如果可以的话,我不希望平板电脑运行 RoyalSlider 的 2 个实例。

这是我的尝试:

$('[data-role="page"].ui-page-active').live('pageinit', function(){
$('[data-role="page"]:not(.ui-page-active)').live('pageremove');
});

您的任何见解都会很棒,我只是想避免内存泄漏和性能下降。除了这些喜怒无常的问题之外,JQM 的开发非常棒。谢谢。

最佳答案

如果您想在每次通过 ajax 加载页面时运行一个函数,请使用

$(document).bind('pageinit')

http://jquerymobile.com/test/docs/api/events.html

我认为你可以做类似的事情来删除页面

$(document).bind('pageremove')

关于jquery mobile、pageinit、pagecreate 和冗余,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10336138/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com