我正在使用JQuery Ajax来获取数据。我想在我的代码中包含所有锚标记,如果有人点击标记,它就不会触发并调用Ajax。以下是我的代码,但它不起作用。
$('.one_item a').each(function(){
$(this).live('click', function(){
alert($(this).attr('href'));
return false;
});
});
我使用的是JQuery 1.5版,所以.live应该可行。有任何想法吗?欢呼声。
答案 0 :(得分:4)
.live
必须应用于选择器。当您使用.each()
时,您无法获得处理动态添加元素的事件的好处,因为您只是迭代运行循环时找到的元素。
$('.one_item a').live('click', function(){
alert($(this).attr('href'));
return false;
});
答案 1 :(得分:1)
您可以直接在选择器上使用.live()
:
$('.one_item a').live('click', function(e) {
e.preventDefault();
alert($(this).attr('href'));
});
它应该有效,see this demo。
然而,它不断迭代
alert($(this).attr('href'));
。如何才能点击我点击的项目?
确保您没有在其他地方触发click()
事件循环,例如:
$('.one_item a').each(function() {
$(this).click();
// other stuff
});