Javascript jquery中回调函数的问题
我正在使用以下函数填充dropmenu菜单,我的问题是我的单击事件没有触发,并且我无法填充动态下拉菜单 这是我的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( {
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事件