FadeOut et Supprimer la ligne de table

Je sais que cette question a déjà été posée, mais je semble avoir un problème différent de celui qui a été abordé auparavant. J’ai une table et je voudrais que chaque ligne ait un lien de suppression qui efface la ligne de la table, puis supprime la ligne de la table du DOM. Mon premier problème était que je ne pouvais pas obtenir l’effet jQuery fadeOut pour travailler sur les lignes de la table et que vous deviez appeler fadeOut sur les éléments td de la ligne. Alors, voici mon jJavascript:

$('span.deleteItem').live('click', function() { $(this).closest('tr').find('td').fadeOut('fast', function(){ $(this).parents('tr:first').remove(); }); return false; }); 

L’élément span vit à l’intérieur d’un td. Je trouve donc l’élément tr le plus proche quand on clique dessus, puis la fonction fadeOut tombe sur chaque élément td. Cela fonctionne très bien.

Le problème est que, dans la fonction de rappel, “this” fait en réalité référence à l’élément window et non à l’élément td individuel qui était masqué. D’après ce que j’ai compris, «ceci» était supposé faire référence à l’élément qui avait disparu.

Des idées?

    Prenez la référence “this” et transmettez-la:

     $('span.deleteItem').live('click', function() { var here = this; $(this).closest('tr').find('td').fadeOut('fast', function(here){ $(here).parents('tr:first').remove(); }); return false; }); 

    Je pense que c’est ce que vous recherchez:

     $('span.deleteItem').live('click', function() { var tableRow = $(this).closest('tr'); tableRow.find('td').fadeOut('fast', function(){ tableRow.remove(); } ); }); 

    EDIT: Je pense que Opatut a raison , comme le montre son JsFiddle .