Setelah saya memecat seorang evt.preventDefault()
, bagaimana saya bisa melanjutkan tindakan standar lagi?
javascript
jquery
preventdefault
Bryan
sumber
sumber
Jawaban:
Seperti yang dikomentari oleh @Prescott, kebalikan dari:
Bisa jadi:
Pada dasarnya menyamakan dengan 'lakukan default' , karena kami tidak lagi mencegahnya.
Kalau tidak, saya cenderung mengarahkan Anda ke jawaban yang diberikan oleh komentar dan jawaban lain:
Bagaimana cara melepaskan ikatan pendengar yang memanggil event.preventDefault () (menggunakan jQuery)?
Bagaimana cara mengaktifkan kembali event.preventDefault?
Perhatikan bahwa yang kedua telah diterima dengan solusi contoh, diberikan oleh redsquare (diposting di sini untuk solusi langsung jika ini tidak ditutup sebagai duplikat):
sumber
dan kebalikannya
Bersulang!
sumber
return true
: tidak ada.Untuk memproses perintah sebelum melanjutkan tautan dari
click
acara di jQuery:Misalnya:
<a href="http://google.com/" class="myevent">Click me</a>
Cegah dan tindak lanjuti dengan jQuery:
Atau jalankan
window.location = this.href;
setelahpreventDefault();
sumber
Saya harus menunda pengiriman formulir di jQuery untuk menjalankan panggilan asinkron. Berikut kode yang disederhanakan ...
sumber
BAIK ! ini berfungsi untuk acara klik:
sumber
dan kebalikannya (standar):
sumber: https://developer.mozilla.org/en-US/docs/Web/API/Event/returnValue
sumber
Saya akan menyarankan pola berikut:
... kecuali aku kehilangan sesuatu.
http://jsfiddle.net/DdvcX/
sumber
Tidak ada metode yang berlawanan
event.preventDefault()
untuk memahami mengapa Anda pertama-tama harus melihat apa yangevent.preventDefault()
dilakukannya ketika Anda menyebutnya.Di bawah tenda, fungsionalitas untuk preventDefault pada dasarnya memanggil return false yang menghentikan eksekusi lebih lanjut. Jika Anda terbiasa dengan cara-cara lama Javascript, sudah saatnya untuk menggunakan return false untuk membatalkan acara pada hal-hal seperti pengiriman formulir dan tombol menggunakan return true (sebelum jQuery bahkan ada).
Seperti yang mungkin sudah Anda lakukan berdasarkan penjelasan sederhana di atas: kebalikan dari
event.preventDefault()
tidak ada. Anda hanya tidak mencegah acara tersebut, secara default browser akan mengizinkan acara jika Anda tidak mencegahnya.Lihat penjelasan di bawah ini:
Dalam kode di atas Anda akan melihat kami memeriksa apakah allowSubmit salah. Ini berarti kami akan mencegah formulir kami mengirimkan menggunakan
event.preventDefault
dan kemudian kami akan melakukan beberapa logika validasi dan jika kami senang, set allowSubmit menjadi true.Ini benar-benar satu-satunya metode yang efektif untuk melakukan yang sebaliknya
event.preventDefault()
- Anda juga dapat mencoba menghapus acara yang pada dasarnya akan mencapai hal yang sama.sumber
Ini sesuatu yang bermanfaat ...
Pertama-tama kita akan mengklik tautan, menjalankan beberapa kode, dan kemudian kita akan melakukan tindakan default. Ini akan dimungkinkan menggunakan event.currentTarget Lihatlah. Di sini kita akan mencoba mengakses Google pada tab baru, tetapi sebelum kita perlu menjalankan beberapa kode.
sumber
Ini yang saya gunakan untuk mengaturnya:
Dan untuk membatalkannya:
sumber
Tidak ada solusi yang membantu saya di sini dan saya melakukan ini untuk menyelesaikan situasi saya.
Dan fungsinya
clickEvent()
,sumber
Saya kira "lawannya" adalah untuk mensimulasikan suatu peristiwa. Anda bisa menggunakannya
.createEvent()
Berikut contoh Mozilla:
Ref: document.createEvent
jQuery memiliki
.trigger()
sehingga Anda dapat memicu peristiwa pada elemen - terkadang bermanfaat.sumber
jquery on () bisa menjadi solusi lain untuk ini. escpacially ketika datang ke penggunaan ruang nama .
jquery on () hanyalah cara saat ini untuk mengikat acara (bukan bind ()). off () adalah untuk melepaskan ikatan ini. dan ketika Anda menggunakan namespace, Anda dapat menambah dan menghapus beberapa acara yang berbeda.
sekarang dengan menggunakan namespace, Anda dapat menambahkan beberapa dari acara ini dan dapat menghapusnya, tergantung pada kebutuhan Anda .. sementara mengirimkan mungkin bukan contoh terbaik, ini mungkin berguna pada klik atau penekanan tombol atau apa pun ..
sumber
Ini bukan jawaban langsung untuk pertanyaan tetapi dapat membantu seseorang. Maksud saya adalah Anda hanya memanggil preventDefault () berdasarkan pada beberapa kondisi karena tidak ada gunanya mengadakan acara jika Anda memanggil preventDefault () untuk semua kasus. Jadi memiliki jika kondisi dan panggilan preventDefault () hanya ketika kondisi puas akan berfungsi dengan cara biasa untuk kasus-kasus lain.
});
sumber
Anda dapat menggunakan ini setelah metode "preventDefault"
// Di sini evt.target kembali acara default (mis .: url urung dll)
// Di sini kita menyimpan acara default ..
sumber
Anda selalu dapat menggunakan ini terlampir pada beberapa acara klik dalam skrip Anda:
contoh penggunaannya adalah:
sumber
kode ini berfungsi untuk saya instantiate ulang acara setelah saya menggunakan:
sumber
Saya telah menggunakan kode berikut. Ini bekerja dengan baik untuk saya.
sumber
event.preventDefault()
;