J'essaie d'utiliser jQuery pour envoyer une demande d'obtention au serveur, et je pense que cela se passe correctement, car un enregistrement est supprimé, mais je veux masquer l'élément cliqué après la fin de la demande.
Voici un exemple d'extrait HTML, qui est généré via un modèle la photo contenue dans le L'idée est que si vous cliquez sur l'icône que vous avez demandé si vous souhaitez supprimer l'enregistrement correspondant, et si vous cliquez sur OK, la demande d'obtention est initiée. . P> Dès maintenant, lorsque cela se produit, l'enregistrement est supprimé, mais la vue sur la page ne change pas sauf si je l'actualise. En supposant que cela soit le comportement correct, je voudrais simplement masquer la ligne contenant l'icône, qui est l'idée derrière le script jQuery, mais la ligne n'est pas cachée et je ne sais pas où mon code est incorrect. p> aimerait savoir ce que je fais mal. p> p> jinja2 code> Modèle: p> svg code > Tag est celle d'une poubelle, et j'ai un script JQuery qui initie un Demande d'accès à un serveur Python pour supprimer l'enregistrement avec la valeur d'identité d'identifiant code>. : p>
3 Réponses :
Vous devez enregistrer la référence à l'extérieur en utilisant un Fonction de flèche (le Ceci code> à l'intérieur de la fonction de rappel pour jquery.get n'est pas identique à la valeur code> de cette code> à l'intérieur de la fonction d'écouteur d'événement).
Si vous souhaitez utiliser Ceci code> pour accéder à l'élément, il doit référence à la fonction extérieure afin. Il vous suffit de vous déplacer $ (this) .closest ('TR'). Masquer () Code> Extérieur jQuery Callback $("svg").click(function(){
var id = $(this).attr('id');
decision = window.confirm("Are you sure you want to delete this class?");
if (decision === true) {
$(this).closest('tr').hide()
var url = '/classes/' + id + '/delete';
jQuery.get(url, function(){
console.log("It worked.");
;
});
}
});
});
Essayez ceci, j'espère que cela vous aidera
$("svg").click(function() {
// Var definition
var $this = $(this);
var id = $this.attr('id');
// Get confirmation
decision = window.confirm("Are you sure you want to delete this class?");
// Check the decision
if (decision) {
var url = '/classes/' + id + '/delete';
// Send GET request
$.get(url, function() {
// You can hide or remove the table row
$this.closest('tr').hide();
});
}
});