如何使用由服务器端创建的JQuery向元素添加click事件

时间:2013-09-16 13:22:20

标签: javascript jquery html

我在服务器端创建了一个ul列表,如下所示。我想用jquery将click事件添加到a元素,但我无法访问任何元素。这是我的代码:

服务器端:

 StringBuilder sbSubCitchens = new StringBuilder();

 sbSubCitchens.Append(@"<div id=""content_1"" class=""subCats"">");
 sbSubCitchens.Append("<ul>");

foreach (kitchen kitchen in kitchenList)
 {
    sbSubCitchens.Append(@"<li><a  class="" " + kitchen.KitchenId + @""">" + kitchen.Name + "</a>  </li>");
 }
 sbSubCitchens.Append("</ul>");
 sbSubCitchens.Append("</div>");

 ltrKitchenList.Text = sbSubCitchens.ToString();

使用Javascript:

$(document).ready(function () {

 $(".mCSB_container ul li a").click(function () {
       // do smth...
    });
})

Html输出:

<div class="mCSB_container" style="position: relative; top: 0px;">
  <ul>
   <li><a class=" 1">Cafe</a>  </li>
   <li><a class=" 2">Dünya Mutfağı</a>  </li>
  </ul>
</div>

2 个答案:

答案 0 :(得分:3)

试试这个:

$(".mCSB_container ul li a").click(function (e) {
    e.preventDefault();
    // do smth...
});

我认为点击可能有效,但由于您没有阻止默认操作,链接可能正在重新加载页面。

同时确保html输出符合您的预期,因为您发布的服务器端代码本身不会为您提供所发布的输出(因此选择器不起作用)。

答案 1 :(得分:0)

我认为你必须把“href”参数:

<a href="#" class="whatever">Some stuff</a>