2012-01-16 40 views
0

我编程方式打开一个对话框,这段代码:开幕编程对话框导致pageInit事件激发

$.mobile.changePage('#about', { 
    transition: 'pop', 
    changeHash: false 
}); 

#about块是在同一页上:

<div id="about" data-role="dialog"> 
    <!-- --> 
</div> 

但每次我这样做,pageInit事件被调用,这是一个非常不受欢迎的行为。

有没有解决这个办法吗?

+0

我相信这是默认行为,因为jQM将对话视为页面。即使这还不支持,你可以尝试http://filamentgroup.com/tests/popup/docs/pages/popup/index.html这是在博客http://jquerymobile.com/blog/2012/01上公布的/ 10 /即将发布版-1-0-1-1-1和超越/ – 2012-01-16 20:38:49

回答

0

我不知道你"which is a very unwanted behavior"的意思,但如果你想只有一次对话运行代码,然后添加一个检查,看它是否已初始化尚未:

$(document).delegate('#about', 'pageinit', function() { 
    if ($(this).hasClass('ui-dialog') === false) { 
     //code in here will only run once per page load/refresh 
    } 
}); 

jQuery Mobile的添加类对于它初始化的每个小部件,您可以检查这些类的小部件以测试它们是否已初始化。

相关问题