невозможно запустить событие $ .mobile.changePage - PullRequest
0 голосов
/ 15 марта 2012

До сих пор я до сих пор не понял, почему $ .mobile.changePage не будет срабатывать на следующей / второй странице, он работает только на странице индекса. Я понял, что при использовании jquery mobile все скрипты будут загружаться только один раз, потому что jqm построен Ajax-способом. Но я все еще не могу найти решение своей проблемы.

Этот скрипт ниже не запускается, если не в index.page или при первой загрузке.

            $(document).bind("pageinit", function(){
            $('.sns-down').bind('swipe', function(event) {
                $.mobile.changePage('#featured', { transition: "slidedown"});
            });
        });

Я сделал простую демонстрацию и приложил ее здесь для большего пояснения. Ссылка для скачивания

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

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Не используйте $ (document) .bind, используйте новое делегирование on, это помещает слушателя в корень вашего документа, который прослушивает события pageinit / pageshow, которые всплывают, когда новые страницы добавляются jQM.

$(document).on('pageinit', 'div:jqmData(role="page"), div:jqmData(role="dialog")', function(event){
        $(this).find('.sns-down').bind('swipe', function(event) {
            $.mobile.changePage('#featured', { transition: "slidedown"});
        });

Не используйте прямую $('.sns-down'), этот селектор может непреднамеренно выбирать элементы не на вашей текущей странице, вы всегда должны искать с текущей страницы.

Следующее, что нужно проверить, это если #featured существует, если вы включили его на своей первой странице, то оно будет там.Если ваша вторая страница представляет собой многостраничный шаблон и вы ссылаетесь на него, jQM извлекает только одну страницу из вашего многостраничного шаблона.Просто попробуйте настоящую страницу, чтобы устранить эту проблему.

Используйте отладчик / предупреждение, чтобы гарантировать, что pageinit правильно перехватывается при переходе страницы, чтобы исключить это, но это должно работать.

1 голос
/ 15 марта 2012

Привет, вероятно, это может дать вам представление о том, что вы можете скопировать и вставить код:

http://jsfiddle.net/r4DyU/1/

Можете ли вы jsfiddle ваши, но выше должно помочь.

ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...