Javascript 让锚定标记在单击时不触发

Javascript 让锚定标记在单击时不触发,javascript,jquery,Javascript,Jquery,我正在使用jQueryAjax获取数据。我希望在代码中包含所有锚定标记,如果有人单击标记,它不会触发并调用Ajax。下面是我的代码,但它不起作用 $('.one_item a').each(function(){ $(this).live('click', function(){ alert($(this).attr('href')); return false; }); }); 我使用的是JQuery版本1.5,因此.live应该可以工作。有什

我正在使用jQueryAjax获取数据。我希望在代码中包含所有锚定标记,如果有人单击标记,它不会触发并调用Ajax。下面是我的代码,但它不起作用

$('.one_item a').each(function(){
    $(this).live('click', function(){
        alert($(this).attr('href'));
        return false;
    });
});
我使用的是JQuery版本1.5,因此.live应该可以工作。有什么想法吗?干杯。

您可以直接在选择器上使用
.live()

$('.one_item a').live('click', function(e) {
    e.preventDefault();
    alert($(this).attr('href'));
});
它应该会起作用

但是,它不断迭代
警报($(this.attr('href'))。如何使其仅在我单击的项目上启动

确保您没有在其他地方触发
click()
事件循环,例如:

$('.one_item a').each(function() {
    $(this).click();
    // other stuff
});
您可以直接在选择器上使用
.live()

$('.one_item a').live('click', function(e) {
    e.preventDefault();
    alert($(this).attr('href'));
});
它应该会起作用

但是,它不断迭代
警报($(this.attr('href'))。如何使其仅在我单击的项目上启动

确保您没有在其他地方触发
click()
事件循环,例如:

$('.one_item a').each(function() {
    $(this).click();
    // other stuff
});

.live
必须应用于选择器。当您使用
.each()
时,您无法获得处理动态添加的元素上的事件的好处,因为您只是在循环运行时找到的元素上进行迭代

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

.live
必须应用于选择器。当您使用
.each()
时,您无法获得处理动态添加的元素上的事件的好处,因为您只是在循环运行时找到的元素上进行迭代

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


这些是动态添加的吗?如果是,则必须将
.live
应用于选择器,而不是特定元素。能否显示
HTML
?什么是“它不工作”?你的意思是警告的href是错误的吗?或者锚跳没有被阻止?或者什么都没有发生?您是否忘记了
DOM就绪
处理程序?这些是动态添加的?如果是,则必须将
.live
应用于选择器,而不是特定元素。能否显示
HTML
?什么是“它不工作”?你的意思是警告的href是错误的吗?或者锚跳没有被阻止?或者什么都没发生?你忘了
DOM Ready
处理程序了吗?
。在
上,直到jQuery 1.7才添加,他使用的是1.5。@Barmar是的,错过了,修复了。嗨,Thx。我设法让它工作使用。单击。但是,它会不断迭代警报$(this.attr('href')。我怎样才能让它只在我点击的项目上启动?嗨,Barmar,我刚刚试过你的代码。仍然有相同的问题。
.on
直到jQuery1.7才添加,他使用的是1.5。@Barmar是的,错过了,修复了。嗨,Thx。我设法让它工作使用。单击。但是,它会不断迭代警报$(this.attr('href')。我怎样才能让它只在我点击的项目上启动?嗨,Barmar,我刚刚试过你的代码。仍然有同样的问题。嗨,谢谢你的回复。它仍在不断迭代警报$(this.attr('href')。大约有20个项目具有相同的结构。()我怎样才能让它只在我点击的项目上启动?对不起,巴玛。它起作用了。它会迭代,因为我在循环中调用了函数。我真丢脸!!!您好,谢谢您的回复。它仍在不断迭代警报$(this.attr('href')。大约有20个项目具有相同的结构。()我怎样才能让它只在我点击的项目上启动?对不起,巴玛。它起作用了。它会迭代,因为我在循环中调用了函数。我真丢脸!!!