Le rejet des données supprime complètement l'élément. Utilisez plutôt la méthode .hide () de jQuery.
La méthode fix-it-quick:
Utilisation de javascript en ligne pour masquer l'élément en cliquant comme ceci:
<div class="alert" style="display: none">
<a class="close" onclick="$('.alert').hide()">×</a>
<strong>Warning!</strong> Best check yo self, you're not looking too good.
</div>
<a href="#" onclick="$('alert').show()">show</a>
http://jsfiddle.net/cQNFL/
Cela ne devrait cependant être utilisé que si vous êtes paresseux (ce qui n'est pas une bonne chose si vous voulez une application maintenable).
La méthode do-it-right:
Créez un nouvel attribut de données pour masquer un élément.
Javascript:
$(function(){
$("[data-hide]").on("click", function(){
$("." + $(this).attr("data-hide")).hide()
// -or-, see below
// $(this).closest("." + $(this).attr("data-hide")).hide()
})
})
puis remplacez les données par masquer les données dans le balisage. Exemple à jsfiddle .
$("." + $(this).attr("data-hide")).hide()
Cela masquera tous les éléments avec la classe spécifiée dans data-hide, c'est-à-dire: data-hide="alert"
masquera tous les éléments avec la classe alert.
Xeon06 a fourni une solution alternative:
$(this).closest("." + $(this).attr("data-hide")).hide()
Cela ne masquera que l'élément parent le plus proche. Ceci est très utile si vous ne souhaitez pas attribuer à chaque alerte une classe unique. Veuillez noter que, cependant, vous devez placer le bouton de fermeture dans l'alerte.
Définition de .closest de jquery doc :
Pour chaque élément de l'ensemble, obtenez le premier élément qui correspond au sélecteur en testant l'élément lui-même et en parcourant ses ancêtres dans l'arborescence DOM.
alert
) sur la page. Une solution pour cela serait de remplacer le contenu du rappel par cette ligne$(this).closest("." + $(this).attr("data-hide")).hide();
, ce qui n'affectera que l'élément parent le plus proche, étant donné que le bouton de rejet est généralement placé dans l'alerte qu'il affecte.