Durch Datenentlassung wird das Element vollständig entfernt. Verwenden Sie stattdessen die .hide () -Methode von jQuery.
Die Fix-It-Quick-Methode:
Verwenden Sie Inline-Javascript, um das Element beim Klicken wie folgt auszublenden:
<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/
Dies sollte jedoch nur verwendet werden, wenn Sie faul sind (was nicht gut ist, wenn Sie eine wartbare App wünschen).
Die Do-it-Right-Methode:
Erstellen Sie ein neues Datenattribut zum Ausblenden eines Elements.
Javascript:
$(function(){
$("[data-hide]").on("click", function(){
$("." + $(this).attr("data-hide")).hide()
// -or-, see below
// $(this).closest("." + $(this).attr("data-hide")).hide()
})
})
und ändern Sie dann im Markup die Option "Daten entlassen" in "Daten ausblenden". Beispiel bei jsfiddle .
$("." + $(this).attr("data-hide")).hide()
Dadurch werden alle Elemente mit der in data-hide angegebenen Klasse ausgeblendet, dh: data-hide="alert"
Alle Elemente mit der Alert-Klasse werden ausgeblendet.
Xeon06 bot eine alternative Lösung:
$(this).closest("." + $(this).attr("data-hide")).hide()
Dadurch wird nur das nächstgelegene übergeordnete Element ausgeblendet. Dies ist sehr nützlich, wenn Sie nicht jeder Warnung eine eindeutige Klasse zuweisen möchten. Bitte beachten Sie jedoch, dass Sie die Schaltfläche zum Schließen in der Warnung platzieren müssen.
Definition von .closest from jquery doc :
Rufen Sie für jedes Element in der Menge das erste Element ab, das dem Selektor entspricht, indem Sie das Element selbst testen und seine Vorfahren im DOM-Baum durchlaufen.
alert
) auf der Seite hat. Eine Lösung hierfür wäre, den Inhalt des Rückrufs durch diese Zeile zu ersetzen$(this).closest("." + $(this).attr("data-hide")).hide();
, die nur das nächstgelegene übergeordnete Element betrifft, da die Schaltfläche zum Schließen normalerweise in der betroffenen Warnung platziert ist.