jQuery Mobile – 无法将pagebeforechange绑定到页面ID?

我只能将pagebeforechange绑定到整个jquery移动文档,而不是单个页面。 任何人都可以解释为什么这不起作用?

$("div[data-role='page']").live( "pagebeforehide", function( event ) { alert('This alert should trigger before Next Page Here is shown?'); }); 

(查看链接了解详情)你也可以使用bind而不是live,希望它有所帮助。

JQM页面的选择器:

 $('.ui-page') 

将事件侦听器添加到文档中的所有页面可以完成如下:

 $(document).delegate(".ui-page","pagebeforehide", function(evt, ui){ alert('pagebeforehide fired'); } 

小提琴使用代表

注意使用bind而不是delegate将不适用于上述选择器,因为ui-page类仅在页面创建时添加。

为了使用bind ,请使用以下选择器:

 $("div[data-role='page']") 

并使用(仅在文档准备好或正文已加载后)添加事件侦听器:

 $("div[data-role='page']").bind("pagebeforehide", function(evt, ui{ alert('pagebeforehide fired'); } 

小提琴使用绑定

我还建议使用mobileinit事件而不是文档就绪!

使用jQuery Mobile – 我很确定你没有绑定到文档,而是绑定到pageinit属性。

绑定到doc会产生问题…请记住,此链接再次在#home上工作,您将需要另一个事件监听器,用于beforepageshow或再次显示页面之前的内容。

这个文档很有帮助……

我有完全相同的问题,但我至少有一个解决方法。 警告:这是一个愚蠢,可怕的代码。 但它完成了这项工作。

 window.doubleLoadPreventer = 0; $(document).bind('pagebeforechange', function(e, data){ if ( window.doubleLoadPreventer === 1 ) { window.doubleLoadPreventer = 0; return; } else { window.doubleLoadPreventer = 1; } //your normal event handler code here }