单击时锚标记不会触发

时间:2013-07-11 02:17:31

标签: javascript jquery

我正在使用JQuery Ajax来获取数据。我想在我的代码中包含所有锚标记,如果有人点击标记,它就不会触发并调用Ajax。以下是我的代码,但它不起作用。

$('.one_item a').each(function(){
    $(this).live('click', function(){
        alert($(this).attr('href'));
        return false;
    });
});

我使用的是JQuery 1.5版,所以.live应该可行。有任何想法吗?欢呼声。

2 个答案:

答案 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
});