如何在jquery中访问动态创建的列表?

时间:2010-03-18 00:18:40

标签: javascript jquery html

我有一个无序的链接列表,它是由Ajax动态创建的,对于每个链接我想添加点击功能,但它不起作用,请帮助!

这是我的代码:

HTML

<div id="sidebar">
  <li>
      <h2> list </h2>
      <ul id="list"></ul>
  </li>
</div>

JS

//to create links
var str = '';
$.each(json.opts, function(i, opt) {
  var id = opt + '-list';
  str += '<li><a href="#" id='+ id +'>' + opt + '</a></li>';   //link
}
$("#list").html(str);

...
//to add click function to each links, this won't work
$("#list li").each(function (i) {
   alert(i + " : " + $(this).text());
});

3 个答案:

答案 0 :(得分:1)

应该是.click()而不是.each()

$("#list li").click(function (i) {
   alert(i + " : " + $(this).text());
});

如果调用此函数,则必须已插入元素。否则你必须使用.live()

$("#list li").live('click', function (i) {
   alert(i + " : " + $(this).text());
});

答案 1 :(得分:0)

也许你需要.live()

描述:为现在或将来与当前选择器匹配的所有元素附加事件的处理程序。

答案 2 :(得分:0)

我一整天都在打架!

我需要

.live()

我动态创建了没有响应.click()

的幻灯片编号链接