javascript - jquery回调函数的问题

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

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

这是我的 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));


                     });


                 }
         });

    }

最佳答案

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

应该是:

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

关于javascript - jquery回调函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6276107/

相关文章:

javascript - 如果点击 child ,不要隐藏灯箱

asp.net Web 应用程序模板缺少 Visual Studio 2017

c# - 我如何从代码隐藏中刷新 asp 页面? C#

c# - asp.net 网站中的 Quartz.net 设置

javascript - 使用 Team CIty 的 REST API 在构建数组中提取每个构建的更多信息

javascript - 添加新内容后加载更多按钮不动

javascript - 使用 passthru 将变量从 ajax 结果发送到 php

javascript - 如何让Excel VBA自动点击IE中的javascript a href链接

javascript - 如何打印 2 LL?

Javascript 对象文字 : value initialization?