我有一个MVC应用程序,其中顶部菜单是动态构建的:
$.each(data, function (index, dataMenu) {
if (i == 0) {
stringBuilder.push('<li class="home"><a href="#">' + dataMenu.MenuName + '</a></li>');
i++;
}
else {
stringBuilder.push('<li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">' + dataMenu.MenuName + '</a>');
stringBuilder.push('<ul class="dropdown-menu">');
$.each(dataMenu.GetallMenus, function (index, submnu) {
stringBuilder.push('<li class=""><a data-ajax="true" data-ajax-mode="replace" data-ajax-update="#content-area" href="' + submnu.MenuItemUrl + '">' + submnu.MenuName + '</a></li>');
});
stringBuilder.push('</ul>');
stringBuilder.push('</li>');
}
});
stringBuilder.push('</ul>');
$("#menu").append(stringBuilder.join(''));
_Layout.cshtml和document.ready上的div标签中有一个加载器gif。它最初是隐藏的。
我要做的是在每个菜单上显示div。
我该如何去做?
问候。
答案 0 :(得分:0)
你不能在循环外做这件事吗?
$('#menu li').click(function()
{
showSpinner();
}
也许我正在读错的问题。
答案 1 :(得分:0)
你可以这样做,以避免为每个元素设置监听器。
$(document).on("click", "your target query", function(){
// Your click logic
});
这样会导致:
$(document).on("click", "#menu li.someClass", function(){
// Your click logic
});
这可以动态地添加或删除菜单项,只需要调用一次。