我有很多的,我希望被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