在jQuery中动态添加单击处理程序
我有一个MVC应用程序,其中顶部菜单是动态构建的,如下所示:在jQuery中动态添加单击处理程序,jquery,Jquery,我有一个MVC应用程序,其中顶部菜单是动态构建的,如下所示: $.each(data, function (index, dataMenu) { if (i == 0) { stringBuilder.push('<li class="home"><a href="#">' + dataMenu.MenuName + '</a></li>');
$.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(''));
$。每个(数据、函数(索引、数据菜单){
如果(i==0){
stringBuilder.push(“”);
i++;
}
否则{
stringBuilder.push(“”);
stringBuilder.push(“”);
$.each(dataMenu.GetAllMenu,函数(索引,子MNU){
stringBuilder.push(“- ”
”);
});
stringBuilder.push(“
”);
stringBuilder.push(“ ”);
}
});
stringBuilder.push(“”);
$(“#菜单”).append(stringBuilder.join(“”));
在_Layout.cshtml和document.ready上的div标记中有一个加载gif,它最初是隐藏的
我想做的是在每次单击菜单时显示div
我该怎么做呢
问候。你就不能在循环之外这样做吗
$('#menu li').click(function()
{
showSpinner();
}
也许我看错了问题。您可以这样做,以避免为每个元素设置侦听器
$(document).on("click", "your target query", function(){
// Your click logic
});
因此,这将导致:
$(document).on("click", "#menu li.someClass", function(){
// Your click logic
});
无论您是动态添加还是删除菜单项,这都有效,只需调用一次。您是说这个问题吗?