gpt4 book ai didi

javascript - jquery mobile 1.4 page multipage onpagecreate管理避免双触发器触发

转载 作者:行者123 更新时间:2023-11-30 05:40:11 24 4
gpt4 key购买 nike

有人可以清除多页中事件处理程序的用法吗?文档很好,但不要警告如果混合这些东西可能会出现的冲突。

例如,作为一个新手,我注意到如果我将我的事件处理程序放在这个 html 结构中,我会触发双重触发,这来自于(或此时忽略)文档的逻辑:

<body>
<div data-role="panel" id="panel">...</div>
<div data-role="page" id="page1" data-title="myhomePage">...</div>
<div data-role="page" id="page2" data-title="products">...</div>
<div data-role="page" id="page3" data-title="settings">...</div>
</body>

在 my.js 中使用以下代码,其中所有处理程序都在全局页面中(如所示并从文档示例中复制)。

$(document).on('pagecreate' ,function(){...event handlers for buttons etc...}); //for the body // ( which is for me actually wrong!!!)
$(document).on('pagecreate', '#page1' ,function(){...}); //for home page
$(document).on('pagecreate', '#page2' ,function(){...}); //for product page

现在,我有了直觉,通过删除全局 onpagecreate 并标记 page1 内的所有事件处理程序,在尝试和错误中间找到了解决方案。

所以现在在 Javascript 中我只有:

$(document).on('pagecreate', '#page1' ,function(){...all my event handlers here...}); 
//for home page

$(document).on('pagecreate', '#page2' ,function(){...generateLists()...});
//for the product page

我苦苦挣扎了好几天的所有双重事件都消失了。

但仍然不确定我是否走在正确的道路上,因为我错过了文档中的一些真实可靠的示例。

我还提示 API 文档方法中的示例。我几乎不理解大多数例子。它们都是基于抽象概念,而不是通常在网络应用程序或页面上找到的真实事物,这确实使整个学习过程变得复杂(至少对我而言)。

最佳答案

如果您有始终必须完成的任务,以及其他基于页面类型的任务,您可以这样实现:

$(document).on("pagecreate", "div[data-role=page]", function(event){
// Every time a page is being created

if ($(this).attr("id") == "page1") {
// Only when on #page1
}
});

$(this) 这里是触发创建事件的页面,所以你可以用它来操作自己;最好使用 div[data-role=page] 作为选择器将处理程序仅附加到具有 data-role=page

的 div

关于javascript - jquery mobile 1.4 page multipage onpagecreate管理避免双触发器触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21259572/

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