在jQuery中动态添加单击处理程序

我有一个MVC应用程序,其中顶部菜单是动态构建的,如下所示:

$.each(data, function (index, dataMenu) { if (i == 0) { stringBuilder.push('
  • ' + dataMenu.MenuName + '
  • '); i++; } else { stringBuilder.push(''); } }); stringBuilder.push(''); $("#menu").append(stringBuilder.join(''));

    _Layout.cshtml和document.ready上的div标签中有一个加载器gif,它最初是隐藏的。

    我想要做的是在每个菜单上显示div。

    我该怎么做呢?

    问候。

    您可以这样做,以避免为每个元素设置监听器。

     $(document).on("click", "your target query", function(){ // Your click logic }); 

    这样会导致:

     $(document).on("click", "#menu li.someClass", function(){ // Your click logic }); 

    这可以动态地添加或删除菜单项,只需要调用一次。

    你不能在循环外做这个吗?

     $('#menu li').click(function() { showSpinner(); } 

    也许我正在读错的问题。