我想使用.each
确定一些动态DOM元素
当我的元素加载延迟时,.each
似乎没有选择这个。
我怎样才能做到这一点?
setTimeout(function(){
$('body').append('<div id="nav">'+
'<ul>'+
'<li><a>button 1</a></li>'+
'<li><a>button 2</a></li>'+
'<li><a>button 3</a></li>'+
'</ul>'+
'</div>');
}, 1000);
$("#nav ul li").each(function (index) {
$(this).delegate('a', 'click', function(){
alert(index); //NOTHING HAPPENS
return false;
});
});
谢谢Sushanth
继承我的小提琴:http://jsfiddle.net/nalagg/rN9tJ/1/
答案 0 :(得分:0)
看起来像the #nav is not a static parent
,因为当关联点击事件时它仍未插入到DOM中。
所以attach it to a higher static parent
。
此外,您首先不需要循环..
将活动委托给body
$('body').delegate('#nav ul li a', 'click', function(){
alert(index);
return false;
});
在最新版本中也弃用了.delegate().. 请改用.on()..
$('body').on('click', '#nav ul li a', function(){
alert(index);
return false;
});