jquery中的回调函数问题

时间:2011-06-08 08:27:43

标签: javascript jquery asp.net callback drop-down-menu

我使用以下函数来填充dropmenu菜单,我的问题是我的点击事件没有触发,我无法填充动态下拉菜单。

这是我的Jquery函数

function testXmlMenu() {
                getmenu(function (results) {
                 $("div[id ^= 'menuItemGroup']").slideUp(500);
                $.ajax(
                    {
                        type: "POST",
                        url: "JsonWebService.asmx/GetMenuItems",
                        data: '{"menuId":"' + results.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='MenuItems'> <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);
                        }
                    });







            });
    }
    function getmenu(callback)
     {
         $.ajax({
             type: "POST",
             url: "JsonWebService.asmx/GetMenus",
             data: "{}",
             contentType: "application/json; charset=utf-8",
             dataType: "xml",

             success:

                 function (results) {

                     $(results).find("Menu").each(function () {
                         var Text = $(this).find("Text").text();
                         var MenuId = $(this).find("MenuId").text();
                         alert(MenuId);
                         var dmenu = $("#Menudiv");
                         dmenu.append("<td><ul>"+Text+"</ul></td>");
                         $("dmenu.td").click(callback(results));


                     });


                 }
         });

    }

1 个答案:

答案 0 :(得分:2)

我认为您的jQuery选择器会针对您的点击操作进行切换。

应该是:

$("td.dmenu").click(callback(results));