我有以下jQuery函数,我试图通过发送OnMenuClick
作为参数来调用MenuId
函数,但我的OnMenuClick
事件未提供所需的输出,是他们的任何替代方法来实现这一目标?
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");
}
}
这是我的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: "json",
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 class='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);
}
}
)
}
如果将MenuId
值1
传递给OnClick
<?xml version="1.0" encoding="utf-8" ?>
<ArrayOfMenuItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
<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>
答案 0 :(得分:1)
它可能不是解决方案,但您可以尝试
首先将div附加到容器,然后执行绑定
function CreateMenus(results) {
for (var i = 0; i < results.length; i++) {
$("<div class='Menu'>" + results[i].Text + "</div>")
.appendTo("#accordionContainer")
.click({ MenuId: results[i].MenuId }, OnMenuClick);
}
}
... HTH