Penghapusan data sepenuhnya menghapus elemen. Gunakan metode .hide () jQuery sebagai gantinya.
Metode perbaiki-cepat:
Menggunakan javascript sebaris untuk menyembunyikan elemen onclick seperti ini:
<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/
Namun ini hanya boleh digunakan jika Anda malas (yang tidak baik jika Anda menginginkan aplikasi yang dapat dipelihara).
Metode lakukan dengan benar:
Buat atribut data baru untuk menyembunyikan elemen.
Javascript:
$(function(){
$("[data-hide]").on("click", function(){
$("." + $(this).attr("data-hide")).hide()
// -or-, see below
// $(this).closest("." + $(this).attr("data-hide")).hide()
})
})
lalu ubah data-tutup menjadi data-hide di markup. Contoh di jsfiddle .
$("." + $(this).attr("data-hide")).hide()
Ini akan menyembunyikan semua elemen dengan kelas yang ditentukan dalam data-hide, yaitu: data-hide="alert"
akan menyembunyikan semua elemen dengan kelas peringatan.
Xeon06 memberikan solusi alternatif:
$(this).closest("." + $(this).attr("data-hide")).hide()
Ini hanya akan menyembunyikan elemen induk terdekat. Ini sangat berguna jika Anda tidak ingin memberi setiap lansiran kelas yang unik. Harap dicatat bahwa, bagaimanapun, Anda perlu menempatkan tombol tutup di dalam peringatan.
Definisi .closest dari jquery doc :
Untuk setiap elemen dalam set, dapatkan elemen pertama yang cocok dengan selektor dengan menguji elemen itu sendiri dan menelusuri leluhurnya di pohon DOM.
alert
) pada halaman. Solusi untuk hal ini adalah mengganti konten callback dengan baris ini$(this).closest("." + $(this).attr("data-hide")).hide();
, yang hanya akan memengaruhi elemen induk terdekat, mengingat tombol tutup biasanya ditempatkan dalam peringatan yang terpengaruh.