以编程方式打开对话框会导致触发pageInit事件

时间:2012-01-16 19:29:38

标签: jquery-mobile

我正在用这段代码以编程方式打开一个对话框:

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

#about块位于同一页面上:

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

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

有什么方法吗?

1 个答案:

答案 0 :(得分: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为其初始化的每个小部件添加了类,您可以检查这些类的小部件,以测试它们是否已经初始化。

相关问题