В JQM pagehow работает, pagebeforeshow не работает

Привет, у меня есть некоторые JQuery Mobile и pageshow работает нормально (с ошибками, но работает нормально) примерно так:

$(document).off('pageshow').on('pageshow', function () { 
   console.log('it happened');
});

NB: у меня были многочисленные (READ: потерянные недели) проблемы с кешированием, поэтому я боюсь, несмотря на всю информацию наоборот off() должен остаться. Вы будете спорить со мной, я буду держать off() и я буду прав.

хорошо, но когда я изменяю это

$(document).off('pagebeforeshow').on('pagebeforeshow', function () { 
   console.log('it happened');
});

это не работает. Теперь я знаю, что вы должны делать что-то вроде

$(document).off('pagebeforeshow').on('pagebeforeshow', '#somediv', function () { 
   console.log('it happened');
});

но я не хочу, чтобы это было только на том div, я хочу, чтобы это было на всем документе.

1 ответ

Вы можете проверить, когда вы покидаете определенную страницу, как это (работает в моем случае):

-> Запустить функцию цикла ( setInterval), которая проверяет каждые 2 секунды, если вы все еще находитесь на этой странице, и если нет (это означает, что вы только что покинули страницу), выполняется только один раз, когда функция

Вот код:

<script>$('#YOUR_PAGE').bind('pageshow', function(data) { 
      var repeat = setInterval(function() {
      var page_path = $.mobile.path.parseUrl(window.location).toString().toLowerCase() ;
      var page_page = page_path.split("#"); 
          if ( page_page[1]  != "YOUR_PAGE"){

          ...
          DO YOUR THING
          ...

          clearInterval(repeat);
               }
          }, 2000);
      });
</script> 
Другие вопросы по тегам