JQuery Mobile在JQuery(文档)中指定页面id。在(';pageinit';

JQuery Mobile在JQuery(文档)中指定页面id。在(';pageinit';,jquery,mobile,Jquery,Mobile,在我的多页JQM应用程序中,我遇到多次触发事件的问题。例如: $("#Button").on("click", function (event) { alert("hello"); }); 这会在第一次触发一次,但在导航到其他页面或使用“后退”按钮后,警报弹出窗口的数量会随着链接访问次数的增加而增加。 我可以通过使用 event.stopImmediatePropagation(); 但这在我的app.WTF中引发了另一个问题?这非常令人沮丧。为什

在我的多页JQM应用程序中,我遇到多次触发事件的问题。例如:

    $("#Button").on("click", function (event) {

            alert("hello");

    });
这会在第一次触发一次,但在导航到其他页面或使用“后退”按钮后,警报弹出窗口的数量会随着链接访问次数的增加而增加。 我可以通过使用

event.stopImmediatePropagation();
但这在我的app.WTF中引发了另一个问题?这非常令人沮丧。为什么JQM网站上没有更好地记录这一点?无论如何。在搜索解决方案时,我在

它建议将“pageinit”事件委托给找到元素的页面id

jQuery(document).on('pageinit', '#page_one', function (event) { 

)};

我有一种预感,与其为该页面的每个代码块设置多个pageinit块(如文章所述),不如将pageinit页面id设置为html中的第一个页面。我尝试了它,多事件问题消失了。我测试了我的应用程序,以确保其他页面上没有其他页面(我总共有六个页面)我的问题是:有人能看到使用此方法进行pageinit的缺点或问题吗?

这种情况的发生是因为jQuery Mobile一次在DOM中保留多个页面。您必须记住这一点。如果id为
按钮的元素存在于两个不同的页面上,其中一个元素将被删除t多次将事件绑定到它(因为id必须是唯一的)


委派的
pageinit
方法是推荐的方法。

谢谢,但我在不同的页面中没有相同的id,它仍然绑定了多次。我的问题是特别询问,是否只将pageinit委派到第一页,并在该块中包含其他页面的代码是一种好的做法。我必须看到更多的c从字面上讲,这只是导致这种结果的一个常见例子。