Порядок событий jquery-mobile и почему setTimeout устанавливает $ this в неопределенное значение? - PullRequest
0 голосов
/ 20 ноября 2011

Мне нужно отложить выполнение 2-й функции crumble () после запуска stackUp () .

Я попытался установить порядок событий с помощью pagechange против pagebeforeshow следующим образом:

$('div:jqmData(role="page")').bind( "pagechange", function( event, data) {
   stackUp(event, data);
});

$('div:jqmData(role="page")').live('pagebeforeshow', function(event, data){
     crumble(event, data, $(this) );
});

Не работает и setTimeout примерно так:

$('div:jqmData(role="page")').live('pagebeforeshow', function(event, data){
     window.setTimeout(function (event, data, $(this)) {
       crumble(event, data, $(this) );
     },500);
});

составляет $ (this) undefined , так что это тоже не поможет.

Вопрос :
Как я могу убедиться, что рушится срабатывает, когда стек сделан?
Не становится ли $ (this) неопределенным, потому что это window.setTimeout () (ине $ (this) .setTimeout)?
Какой правильный порядок событий в jquery-mobile?

Большое СПАСИБО!за помощью.

1 Ответ

0 голосов
/ 20 ноября 2011

Ваша setTimeout функция не имеет смысла.Это даже недопустимый синтаксис - $(this) не может быть именем параметра функции!

Что вы ищете:

$('div:jqmData(role="page")').live('pagebeforeshow', function(event, data) {
    var $this = $(this);
    window.setTimeout(function() {
        crumble(event, data, $this);
    }, 500);
});
...