我正在用这段代码以编程方式打开一个对话框:
$.mobile.changePage('#about', {
transition: 'pop',
changeHash: false
});
#about
块位于同一页面上:
<div id="about" data-role="dialog">
<!-- -->
</div>
但每次我这样做时,都会调用pageInit
事件,这是一种非常不受欢迎的行为。
有什么方法吗?
答案 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为其初始化的每个小部件添加了类,您可以检查这些类的小部件,以测试它们是否已经初始化。