2012-03-09 3 views
0

Я использую jQuery Mobile. И, честно говоря, моя голова прячется прямо сейчас.мое событие не срабатывает на следующей странице

У меня есть этот код:

  //this event happens in my index.php/page1 
      //this works 
      $(document).delegate('.front-page-down','swipedown', function (event) { 
       $.mobile.changePage('#notification', { transition: "slidedown"}); 
      }); 

      $(document).delegate('.swipeup','swipeup', function (event) { 
       $.mobile.changePage('#front-page', { transition: "slideup"}); 
      }); 
      //this event happens in my next page/page2 
      //doesn't work, I have to manually refresh the page first 
      $(document).delegate('.sns-down','swipedown', function (event) { 
       $.mobile.changePage('#featured', { transition: "slidedown"}); 
      }); 

      $(document).delegate('.featured-up','swipeup', function (event) { 
       $.mobile.changePage('#sns-page', { transition: "slideup"}); 
      }); 

Первый 2 (класс на первой странице вниз & swipeup) работает, потому что срабатывает в моей index.php или при первой загрузке моей страницы, но 3-го кода (класс sns-down & featured-up) не будет, мне придется вручную обновить страницу, чтобы она работала. Теперь почему это так реагирует?

Пожалуйста, помогите всем.

+0

Переданы ли функции, переданные делегату вообще? Вы добавили 'console.log' или что-то, чтобы это доказать? Из консоли браузера, что возвращает '$ (". Sns-down ") после загрузки первой, второй, третьей и т. Д.? –

+0

не может использовать console.log coz. Я тестирую его в своем мобильном браузере. Я могу использовать только alert(). Первые два запускают предупреждение(). Но когда я перехожу на следующую страницу и запускаю 3-го и 4-го делегатов, она не срабатывает. T_T –

+0

Можете ли вы протестировать на настольном Chrome? Если нет, то может быть хорошей идеей убедиться, что ваше приложение работает как на мобильном, так и на рабочем столе для тестирования. –

ответ

1

Поскольку каждая страница полностью независима друг от друга. События, зарегистрированные на index.php, не повлияют ни на какую другую страницу. Поэтому вам нужно зарегистрировать их снова на второй странице.

+0

добавил третье и четвертое событие на моей второй странице. Тем не менее он не срабатывает. –

+0

Что-нибудь в консоли ошибок? Есть действительно узлы с классом 'sns-down' на странице? –

+0

привет, проследите за ошибкой: $ .mobile.changePage ('# featured', {переход: "slidedown"}) ;. Эта функция не работает на моей следующей странице. Пытался прокомментировать эту часть, добавив функцию предупреждения, и она сработала. - –

Смежные вопросы