Я не нашел информацию о состоянии перехода в jQuery Mobile, однако вы можете просто добавить три события, одно до и одно после изменения и одно для случая, когда изменение страницы не удалось. Затем сохраните в глобальной переменной, происходит ли переход в данный момент:
window.transitioning = false;
$(document).on("pagebeforechange", function() { transitioning = true; });
$(document).on("pagechange", function() { transitioning = false; });
$(document).on("pagechangefailed", function() { transitioning = false; });
В этом примере я создаю глобальную переменную transitioning
, но вы можете создать эту переменную там, где считаете нужным, например, создание локальной переменной в вашем обработчике диалога, а не использование глобальной переменной.
Теперь вы можете добавить свое условие так:
if(!transitioning) {
// Do your stuff
} else {
// Delegate the events by listening for pagechange and then do your stuff
}