Saya memiliki tautan seperti ini:
<a href="#" onclick="myfunc({a:1, b:'hi'})" />click</a>
<a href="#" onclick="myfunc({a:3, b:'jo'})" />click</a>
Dan saya ingin melakukan preventDefault()
di dalam myfunc()
, karena a #
akan ditambahkan di bilah alamat saat mengklik tautan (tanpa melakukan return false;
atau href='javascript:void(0);'
)
Apakah ini mungkin? Bisakah saya mendapatkan acara di dalammyfunc()
javascript
jquery
html
Omu
sumber
sumber
return false
hanya menghentikan propagasi dalam jQuery.Jawaban:
Saya yakin Anda dapat masuk
event
ke fungsi inline yang akan menjadievent
objek untuk acara yang diangkat di browser yang sesuai dengan W3C (yaitu versi IE yang lebih lama masih memerlukan deteksi di dalam fungsi penanganan acara Anda untuk melihatnyawindow.event
).Contoh cepat .
event
diteruskan keonclick
penangan menjadi sesuatu yang lain sepertie
, klik jalankan, lalu perhatikan bahwa pengalihan terjadi setelah peringatan (panel hasil menjadi putih, mendemonstrasikan pengalihan).sumber
myfunc(event, {a:123, b:"asdas"})
function myfunc(o, e) {...}
maka dapat disebut sebagaimyfunc({a:1, b:'hi'}, event)
.function sayHi() { event.preventDefault(); alert("hi"); }
Solusi paling sederhana adalah:
Ini sebenarnya cara yang baik untuk melakukan perusakan cache untuk dokumen dengan fallback untuk browser yang tidak mendukung JS (tidak ada perusakan cache jika tidak ada JS)
Jika JavaScript diaktifkan, itu membuka PDF dengan string kueri perusak cache, jika tidak, itu hanya membuka PDF.
sumber
Coba ini:
sumber
$("body").on("click","a",function(e) { e.preventDefault() });
. Dalam kedua kasus tersebut, tidak ada solusi yang akan berdampak signifikan pada kinerja.sumber
return false
tidak disarankan karena juga akan mencegah semua penangan acara lainnya pada elemen tersebut berjalan, dan menghentikan acara agar tidak menggelembung ke elemen yang lebih tinggi.Tambahkan kelas unik ke tautan dan javascript yang mencegah default pada tautan dengan kelas ini:
sumber
Bisakah Anda tidak begitu saja menghapus atribut href dari tag?
sumber
Saya rasa ketika kita menggunakan onClick kita ingin melakukan sesuatu yang berbeda dari default. Jadi, untuk semua tautan Anda dengan onClick:
sumber
Sederhana!
sumber
Anda dapat mengakses acara dari onclick seperti ini:
dan pada fungsi javascript Anda, saran saya adalah menambahkan pernyataan baris pertama itu sebagai:
lalu gunakan where e sebagai variabel peristiwa
sumber
e.preventDefault (); dari https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault
Atau telah mengembalikan false dari metode Anda.
sumber
Tanpa perpustakaan JS atau jQuery. Untuk membuka jendela popup yang bagus jika memungkinkan. Gagal dengan aman ke tautan normal terbuka.
Dan fungsi helper:
sumber