Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Функция Jquery Mobile Panel Swipe вызывает ошибки

Автор вопроса: YaskoОтветов: 1

У меня такие тяжелые времена, у меня есть флип-часы с использованием mootools, затем виджет погоды с использованием API Yahoo, теперь я понятия не имею, что вызывает

"невозможно вызвать методы на панели до инициализации; попытка вызвать метод "открыть""

Итак, я следил за этой демонстрацией, http://view.jquerymobile.com/master/docs/examples/panels/panel-swipe-open.php#demo-page и теперь я получаю сообщение об ошибке.

$( document ).on( "pageinit", "#demo-page", function() {
$( document ).on( "swipeleft swiperight", "#demo-page", function( e ) {
    // We check if there is no open panel on the page because otherwise
    // a swipe to close the left panel would also open the right panel (and v.v.).
    // We do this by checking the data that the framework stores on the page element (panel: open).
    if ( $.mobile.activePage.jqmData( "panel" ) !== "open" ) {
        if ( e.type === "swipeleft"  ) {
            $( "#right-panel" ).panel( "open" );
        } else if ( e.type === "swiperight" ) {
            $( "#left-panel" ).panel( "open" );
        }
    }
});

});

Я зашел в тупик, потому что у меня все заработало, не стесняйтесь посмотреть мой код, http://yaasko.com/gra423/project-4.3/ если вы попытаетесь провести пальцем влево или вправо, консоль выдаст ошибку.

Пожалуйста, дайте мне знать, если вы можете помочь, первый пользователь мобильного jquery!

initializationjqueryswipepaneljquery-mobile

Ответы

Ответ 1 · рейтинг 10 · Gajotres

В случае этого сообщения:

открыть панель вот так:

$( "#left-panel" ).panel().panel("open");

Первый вызов panel() инициализирует его, а второй откроет.

ИЗМЕНИТЬ:

$(document).on('pagebeforeshow', '#index', function(){
    $( document ).on( "swipeleft swiperight", "#index", function( e ) {
        if ($.mobile.activePage.find('#left-panel').hasClass('ui-panel-closed') && e.type === "swipeleft") {
            $( "#right-panel" ).panel( "open" );
        }

        if ($.mobile.activePage.find('#right-panel').hasClass('ui-panel-closed') &&  e.type === "swiperight") {
            $( "#left-panel" ).panel( "open" );
        }
    });
});

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы