我有很多的,我希望被Ajax化,这样,当我点击链接,它会删除的项目我的页面上的链接,所以我连接器和事件处理到父DIV像这样:当事件处理程序连接到父HTML元素时,如何防止默认事件操作?
<div id="parent">
<a href='#' data-itemid='1'>Delete Me</a>
<a href='#' data-itemid='2'>Delete Me</a>
<a href='#' data-itemid='3'>Delete Me</a>
</div>
而且我用下面的JQuery
$('#parent').delegate('a', 'ajax:beforeSend', function(event){
event.preventDefault();
var target = $(event.target);
if (target.is('a')) {
var itemid = target.attr('data-itemid');
$.post("/item/"+itemid+'.json', {
_method: 'delete'
});
}
})
.live('ajax:success', function(event, data, status, xhr){
var itemid = data + '';
console.log(itemid);
$('item-' + itemid + '-content').fadeOut();
});
的问题是,当我点击链接时,POST被提交和我的网页接收响应,但是event.preventDefault()行似乎并不奏效,因为点击事件通过并发送第二个GET请求来重新加载我的页面。
如何防止此页面重新加载?我正在使用JQuery 1.5.1和Rails 3.0.7。
感谢
嗯,看...的事情是,如果我这样做,或者如果我使用event.stopPropagation(),它会停止发生GET请求,但由于某种原因它也停止ajax:执行成功(通常在错误的GET请求后正常执行) – noli 2011-05-14 00:32:23