Ошибка при разборе XML-файла и добавлении его в динамическое выпадающее меню - PullRequest
0 голосов
/ 06 июня 2011

У меня есть функции jquery для анализа моего xml-файла и добавления результата к определенному тегу div, но мое событие OnMenuClick не запускается, и я не могу отобразить результат, пожалуйста, я могу знать, где именно я иду не так? 1001 *

function testmenu() {
    $.ajax({
        type: "POST",
        url: "JsonWebService.asmx/TestXML",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "xml",
        success:
            function CreateMenus(results) {
                for (var i = 0; i < results.length; i++) {
                    $("<div class='Menu'>" + results[i].Text + "</div>")
                          .click({ MenuId: results[i].MenuId }, OnMenuClick)
                          .appendTo("#accordionContainer");
                }
            }, 

            error: function (msg) {
                alert(xhr.statusText);
            }
    });
};

Это моя функция для OnMenuClick

function OnMenuClick(event) {
    $("div[id ^= 'menuItemGroup']").slideUp(500);
    $.ajax({
        type: "POST",
        url: "MenuItems.asmx/GetMenuItems",
        data: '{"menuId":"' + event.data.MenuId + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "xml",
        success: function (items) {
            $(event.target).children().remove();
            var html = "<div id='menuItemGroup" + event.data.MenuId + "' style='display:none'>";
            for (var j = 0; j < items.length; j++) {
                html += "<div id='MenuItem'> <a href='" + items[j].NavigateUrl + "'>" +
                items[j].Text + "</a></div>";
            }
            html += "</div>";
            $(event.target).append(html);
            $("#menuItemGroup" + event.data.MenuId).slideDown(500);
        },
        error: function (err) {
            alert(err.status + " - " + err.statusText);
        }
    });
}; 

Мой пример полученного XML-файла выглядит так, когда я вызываю URL MenuItems.asmx / GetMenuItems

 ArrayOfMenuItem><MenuItem><MenuId>1</MenuId><MenuItemId>1</MenuItemId><Text>Books</Text><NavigateUrl>google.com</NavigateUrl></MenuItem><MenuItem><MenuId>1</MenuId><MenuItemId>2</MenuItemId><Text>Cd</Text><NavigateUrl>yahoo.com</NavigateUrl></MenuItem></ArrayOfMenuItem>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...