динамический контент не загружается с помощью jquery mobile - PullRequest
1 голос
/ 22 марта 2012

У меня есть следующий код для мобильной страницы jquery. Когда я запускаю его напрямую, он работает, но когда я ссылаюсь на него с другой страницы, он не загружается. Я пытался отключить data-ajax в ссылочной ссылке, но это не имело значения. Есть идеи?

Вот код:

var urlQuery = location.search;
urlQuery = urlQuery.replace('?', '');
var split = urlQuery.split('=');
var id = split[1];

$(document).delegate('[data-role="page"]', 'pageinit', function(){
    $.get('../ws/bars.php?id=' + id, function(data) { 
        $('[data-role="content"]').html(data);
        $('[data-href="specials"]').trigger('click');
    });
});


$(document).delegate('[data-role="navbar"] a', 'click', function(event){
    $('.content_div').hide(); // hide all the .content_div's
    $('#' + $(this).attr('data-href')).show(); // display the div that's been clicked   $('a.pageTab').removeAttr('style'); // remove styling from the buttons
    $(this).attr('style','color: #eee;'); // add styling to the active button
});

Какие бы ответы я ни получил от этого, пожалуйста, дайте мне объяснение почему, а также что, чтобы я мог понять, что здесь происходит.

Спасибо!

1 Ответ

0 голосов
/ 22 марта 2012

Ваш первоначальный вызов функции $.get() выполняется в глобальной области видимости.Это означает, что он запускается при загрузке страницы, но не при загрузке последующих страниц, поскольку jQuery Mobile перетаскивает внешние страницы в тот же DOM через AJAX.Таким образом, чтобы выполнить запрос AJAX для каждой псевдостраницы, я бы привязал к событию pageinit:

$(document).delegate('[data-role="page"]', 'pageinit', function () {
    //run AJAX request
});

Также, если на каждой странице есть элементы со следующими идентификаторами, #sun / #mon/так далее.затем вы должны изменить их на классы или сделать их уникальными, чтобы в DOM не было сразу нескольких элементов с одинаковым идентификатором.Вы можете легко выбрать элементы на текущей странице, используя ссылку $.mobile.activePage:

$.mobile.activePage.find('.sun')...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...