J'ai beaucoup de liens sur ma page que je veux ajaxifier pour que lorsque je clique sur le lien, cela supprime l'élément, j'ai donc attaché un gestionnaire d'événements à un div parent comme ceci :
Supprimer
Supprimer
Supprimer
Et j'ai utilisé le jQuery suivant
$('#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();
});
Le problème est que lorsque je clique sur le lien, la requête POST est envoyée et ma page reçoit la réponse, cependant la ligne event.preventDefault() ne semble pas fonctionner, car l'événement de clic passe et envoie une deuxième requête GET pour recharger ma page.
Comment puis-je empêcher ce rechargement de page de se produire ? J'utilise JQuery 1.5.1 et Rails 3.0.7.
Merci