Saya memiliki beberapa HTML dan jQuery yang div
menggeser ke atas dan ke bawah untuk menampilkan atau menyembunyikannya ketika sebuah tautan diklik:
<ul class="product-info">
<li>
<a href="#">YOU CLICK THIS TO SHOW/HIDE</a>
<div class="toggle">
<p>CONTENT TO SHOW/HIDE</p>
</div>
</li>
</ul>
$('div.toggle').hide();
$('ul.product-info li a').click(function(event){
$(this).next('div').slideToggle(200);
}
Pertanyaan saya adalah: Bagaimana cara saya preventDefault()
menghentikan tautan yang bertindak sebagai tautan dan menambahkan "#" di bagian akhir URL saya & melompat ke bagian atas halaman?
Saya tidak dapat menemukan sintaks yang tepat, saya hanya terus mendapatkan pesan kesalahan
preventDefault () bukan suatu fungsi.
javascript
jquery
Chris J Allen
sumber
sumber
href
Atribut @KLVTZ dari anchor tag (a
) mungkin tidak kosong ... Tetapi kita dapat mengaturnyajavascript:<code-here>
, yang legal / valid. Kami kemudian memasukkan<code-here>
hanya pernyataan kosong dengan menambahkan tanda titik koma. Dengan cara ini tautannya tidak melakukan apa-apa.Disarankan agar Anda tidak menggunakan
return false
, karena 3 hal terjadi sebagai hasilnya:Jadi dalam situasi seperti ini, Anda sebaiknya hanya menggunakan
event.preventDefault();
Arsip artikel - Acara jQuery: Stop (Mis) Menggunakan Return False
sumber
Atau, Anda bisa mengembalikan false dari peristiwa klik:
Yang akan menghentikan A-Href dipicu.
Namun perhatikan, untuk alasan kegunaan, di dunia ideal yang href masih harus pergi ke suatu tempat, untuk orang-orang yang ingin membuka tautan di tab baru;)
sumber
Ini adalah solusi non-JQuery yang baru saja saya uji dan berfungsi.
sumber
Menggunakan
sumber
href="javascript:// Send Email"
Namun cara lain untuk melakukan hal ini di Javascript menggunakan
inline onclick
,IIFE
,event
danpreventDefault()
:sumber
<a href='#' onclick="event.preventDefault()">Click Me</a>
setelah beberapa operasi, ketika halaman akhirnya harus terhubung, Anda dapat melakukan hal berikut:
sumber
preventDefault
, lalu melakukan sendiri tindakan default? Lakukan saja apa yang perlu Anda tambahkan, dan biarkan default masih terjadi.Mengapa tidak melakukannya saja di css?
Keluarkan atribut 'href' di tag anchor Anda
Di css kamu,
sumber
Jika menghentikan penyebaran acara tidak mengganggu Anda, gunakan saja
di akhir pawang Anda. Di jQuery itu mencegah perilaku default dan menghentikan acara yang menggelegak.
sumber
Anda dapat memanfaatkan dari
return false;
ajang acara untuk menghentikan propagasi acara, berfungsi sepertievent.preventDefault();
meniadakannya. Atau Anda dapat menggunakanjavascript:void(0)
atribut href untuk mengevaluasi ekspresi yang diberikan dan kemudian kembaliundefined
ke elemen.Mengembalikan acara saat dipanggil:
Kasus kosong:
Anda dapat melihat lebih banyak tentang di: Apa efek dari menambahkan void (0) untuk href dan 'return false' pada klik event listener dari anchor tag?
sumber