Диалог открытия программно вызывает событие pageInit - PullRequest
0 голосов
/ 16 января 2012

Я открываю диалог программно с этим фрагментом кода:

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

#about блок находится на той же странице:

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

Но каждый раз, когда я это делаю, вызывается событие pageInit, что является очень нежелательным поведением.

Есть ли способ обойти это?

1 Ответ

0 голосов
/ 17 января 2012

Я не уверен, что вы подразумеваете под "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
    }
});

jQueryMobile добавляет классы к каждому из инициализируемых виджетов. Вы можете проверить виджеты этих классов, чтобы проверить, были ли они инициализированы или нет.

...