Saya telah melampirkan acara ke kotak teks menggunakan addEventListener
. Ini bekerja dengan baik. Masalah saya muncul ketika saya ingin memicu acara secara terprogram dari fungsi lain.
Bagaimana saya bisa melakukannya?
Saya telah melampirkan acara ke kotak teks menggunakan addEventListener
. Ini bekerja dengan baik. Masalah saya muncul ketika saya ingin memicu acara secara terprogram dari fungsi lain.
Bagaimana saya bisa melakukannya?
Jawaban:
Anda dapat menggunakan fireEvent di IE 8 atau lebih rendah, dan dispatchEvent W3C di sebagian besar browser lain. Untuk membuat acara yang ingin Anda jalankan, Anda dapat menggunakan salah satu
createEvent
ataucreateEventObject
tergantung pada browser.Berikut ini adalah sepotong kode yang cukup jelas (dari prototipe) yang menjalankan suatu peristiwa
dataavailable
padaelement
:sumber
eventName
sini?Contoh kerja:
Untuk browser lama, polyfill dan contoh yang lebih kompleks, lihat dokumen MDN .
Lihat tabel dukungan untuk
EventTarget.dispatchEvent
danCustomEvent
.sumber
detail
adalah properti dariEvent
, jadi tetapkan setiap data yang ingin Anda akses di ujung yang lain dan akses olehevent.detail
. +1Jika Anda tidak ingin menggunakan jQuery dan tidak terlalu khawatir tentang kompatibilitas mundur, gunakan saja:
Lihat dokumentasi di sini dan di sini .
EDIT: Tergantung pada pengaturan Anda, Anda mungkin ingin menambahkan
bubbles: true
:sumber
CustomEvent
dan polyfill yang sesuai.jika Anda menggunakan jQuery, Anda dapat melakukannya dengan mudah
dan menanganinya dengan
di mana "[arg0, arg1, ..., argN]" berarti bahwa args ini opsional.
sumber
Jika Anda mendukung IE9 +, Anda dapat menggunakan yang berikut ini. Konsep yang sama tergabung dalam You Might Not Need jQuery .
Jika Anda sudah menggunakan jQuery, ini adalah versi jQuery dari kode di atas.
sumber
window.CustomEvent
ada tetapi tidak dapat disebut sebagai konstruktor: caniuse.com/#search=CustomEvent ;)Saya mencari firing click, mousedown dan acara mouseup di mouse menggunakan JavaScript. Saya menemukan jawaban yang diberikan oleh Juan Mendes . Untuk jawabannya klik di sini .
Klik di sini adalah demo langsung dan di bawah ini adalah kode:
sumber
Hanya untuk menyarankan alternatif yang tidak melibatkan kebutuhan untuk secara manual memohon acara pendengar:
Apa pun yang dilakukan pendengar acara Anda, pindahkan ke fungsi dan panggil fungsi itu dari pendengar acara.
Kemudian, Anda juga dapat memanggil fungsi itu di tempat lain yang Anda perlukan untuk mencapai hal yang sama seperti yang dilakukan oleh acara saat kebakaran.
Saya menemukan ini kurang "kode intensif" dan lebih mudah dibaca.
sumber
Saya hanya menggunakan yang berikut ini (tampaknya jauh lebih sederhana):
Dalam hal ini acara dipicu hanya jika nilai benar-benar berubah sama seperti Anda akan memicu itu oleh lokus fokus normal yang hilang dilakukan oleh pengguna.
sumber
element.click()
.Diubah @ Dorian jawaban untuk bekerja dengan IE:
FIDDLE: https://jsfiddle.net/z6zom9d0/1/
LIHAT JUGA:
https://caniuse.com/#feat=customevent
sumber
Jawaban yang diterima tidak bekerja untuk saya, tidak ada yang membuat createEvent melakukannya.
Apa yang berhasil bagi saya pada akhirnya adalah:
Berikut cuplikan:
Dari membaca: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
sumber
sumber
Anda dapat menggunakan fungsi ini yang saya kompilasi bersama.
Picu acara di bawah ini:
Tonton Acara:
Semoga ini membantu!
sumber
Anda dapat menggunakan kode di bawah ini untuk memecat acara menggunakan metode Elemen:
Tampilkan cuplikan kode
sumber
Cara paling efisien adalah memanggil fungsi yang sama dengan yang telah didaftarkan
addEventListener
secara langsung.Anda juga dapat memicu acara palsu dengan
CustomEvent
dan co.Akhirnya beberapa elemen seperti
<input type="file">
mendukung suatu.click()
metode.sumber
ini akan segera memicu suatu acara 'sebelum menginstalprompt'
sumber
Gunakan panggilan acara jquery. Tulis baris di bawah ini di mana Anda ingin memicu onChange elemen apa pun.
element_id adalah ID elemen yang onChange-nya ingin Anda picu.
Hindari penggunaan
Karena memiliki dukungan yang sangat kurang. Rujuk dokumen ini untuk dukungannya .
sumber
HTML
JS
sumber
Yang Anda inginkan adalah sesuatu seperti ini:
Menggunakan jQuery, itu akan menjadi seperti ini:
sumber
document.getElementByClassName
tidak ada. 2.document.getElementsByClassName
ada tetapi mengembalikan daftar. 3. ini hanya berfungsi untuk beberapa acara asli tertentu. 4. Contoh terakhir memicu acara jQuery di mana tidak ada acara asli yang mendasarinya.