Динамическое создание списков - PullRequest
1 голос
/ 24 ноября 2011

Я пытаюсь создать список из ответа на вызов AJAX, который я вызываю.

Формат 1:

$.ajax({
    url: "BirthdayInvitations.xml",
    dataType: "xml",
    success: function ParseXml(xml) {
        $("div#menu").append('<ul "data-role="listview"> ');
        var ul = $("div#menu  > ul");
        $(xml).find("event").each(function() {
            $(ul).append('<li><a href="' + "hai" + '">' + this.textContent+ '</a></li>'); 
        });
        $('ul').listview('refresh');
    }
});

Формат 2:

У меня былодаже пробовал и с приведенным ниже форматом.

$('ul').append($('<li/>', {    //here appendin `<li>`
    'data-role':"listview"
}).append($('<a/>', {    //here appending `<a>` into `<li>`
    'href': 'test.html',
    'data-transition': 'slide',
    'text': '$(this).textContent'
})));

Результатом формата 1 является простой список тегов привязки.

Пожалуйста, помогите мне в получении решения, мне нужно представление спискасоздается динамически.

Формат 2: вообще не работает.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2011

Я предполагаю, что вам нужно будет вызывать $ ul.listview ('create') в первый раз, так как просмотр списка еще не создан - это обновление можно вызывать только при последовательных вызовах ..

0 голосов
/ 24 ноября 2011

Я исправил ваш первый пример. Вопрос о добавлении простых тегов LI звучит как вызов this.textContent к вашим XML-данным ничего не находит, это правильное имя тега / атрибута?

$.ajax({
    url: "BirthdayInvitations.xml",
    dataType: "xml",
    success: function(xml) {
        var $ul = $("<ul></ul>").data("role", "listview");
        $(xml).find("event").each(function() {
            $ul.append('<li><a href="' + "hai" + '">' + this.textContent + '</a></li>'); 
        });
        $ul.appendTo("DIV#menu");
        $ul.listview('refresh');
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...