Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery中回调函数的问题_Javascript_Jquery_Asp.net_Callback_Drop Down Menu - Fatal编程技术网

Javascript jquery中回调函数的问题

Javascript jquery中回调函数的问题,javascript,jquery,asp.net,callback,drop-down-menu,Javascript,Jquery,Asp.net,Callback,Drop Down Menu,我正在使用以下函数填充dropmenu菜单,我的问题是我的单击事件没有触发,并且我无法填充动态下拉菜单 这是我的Jquery函数 function testXmlMenu() { getmenu(function (results) { $("div[id ^= 'menuItemGroup']").slideUp(500); $.ajax( {

我正在使用以下函数填充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));


                     });


                 }
         });

    }
函数testXmlMenu(){
getmenu(函数(结果){
$(“div[id^='menuItemGroup']);
$.ajax(
{
类型:“POST”,
url:“JsonWebService.asmx/GetMenuItems”,
数据:“{”menuId:“'+results.data.menuId+'”}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“xml”,
成功:功能(项目){
$(event.target).children().remove();
var html=“”;
对于(var j=0;j”+文本+“”);
$(“dmenu.td”)。单击(回调(结果));
});
}
});
}

我认为您的jQuery选择器已切换到单击操作

应该是:

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

感谢您的回复,我可以给回调函数命名为getmenu吗?如果是,它不会进入循环。您可以给它命名为任何名称,如果您不希望递归行为,它将导致递归,然后创建另一个处理程序来处理click事件