Saya mengalami kesulitan memahami cara mensimulasikan klik mouse menggunakan JQuery. Dapatkah seseorang tolong beri tahu saya apa yang saya lakukan salah.
HTML:
<a id="bar" href="http://stackoverflow.com" target="_blank">Don't click me!</a>
<span id="foo">Click me!</span>
jQuery:
jQuery('#foo').on('click', function(){
jQuery('#bar').trigger('click');
});
Demo: FIDDLE
ketika saya mengklik tombol #foo saya ingin mensimulasikan klik pada #bar namun ketika saya mencoba ini, tidak ada yang terjadi. Saya juga mencoba jQuery(document).ready(function(){...})
tetapi tidak berhasil.
javascript
jquery
html
triggers
eventtrigger
lickmycode
sumber
sumber
jQuery trigger
hanya berfungsi jika acara 'jQuery click` ditambahkan. Kalau tidak, Anda tidak akan dapat melakukan apa pun dengan cara ini;Jawaban:
Anda perlu menggunakan
jQuery('#bar')[0].click();
untuk mensimulasikan klik mouse pada elemen DOM yang sebenarnya (bukan objek jQuery), alih-alih menggunakan.trigger()
metode jQuery.Catatan: DOM Level 2
.click()
tidak berfungsi pada beberapa elemen di Safari . Anda harus menggunakan solusi.http://api.jquery.com/click/
sumber
Anda hanya perlu membuat acara timeout kecil sebelum melakukan
.click()
seperti ini:sumber
Ini adalah perilaku JQuery. Saya tidak yakin mengapa ini bekerja seperti ini, itu hanya memicu fungsi onClick pada tautan.
Mencoba:
sumber
trigger()
dimaksudkan untuk menjalankan bagian JavaScript peristiwa klik . Ini sangat mirip dengan membuatfunction var() {}
thats digunakan kembali beberapa kali.Lihat demo saya: http://jsfiddle.net/8AVau/1/
sumber
this.click();
dalamelse if(this.click)
Semoga bermanfaat:
Kode yang memanggil Pemicu harus pergi setelah acara dipanggil.
Sebagai contoh, saya memiliki beberapa kode yang ingin saya jalankan ketika nilai #expense_tickets diubah, dan juga, ketika halaman dimuat ulang
sumber
trigger()
itu tidak berhasil. Ternyata saya memiliki kode pemicu yang diatur DI ATAS fungsi yang dipanggilnya - jadi pengaitnya tidak benar-benar ada. Doh!jQuery's
.trigger('click');
hanya akan menyebabkan suatu acara untuk memicu pada acara ini, itu tidak akan memicu aksi browser default juga.Anda dapat mensimulasikan fungsi yang sama dengan JavaScript berikut:
sumber
Coba ini yang berfungsi untuk saya:
sumber
Saya telah mencoba dua jawaban teratas, itu tidak berfungsi untuk saya sampai saya menghapus "display: none" dari elemen input file saya. Kemudian saya kembali ke .trigger () juga berfungsi di safari for windows.
Jadi kesimpulannya, Jangan gunakan tampilan: tidak ada; untuk menyembunyikan input file Anda, Anda dapat menggunakan opacity: 0 sebagai gantinya.
sumber
Secara teknis bukan jawaban untuk ini, tetapi penggunaan yang baik dari jawaban yang diterima ( https://stackoverflow.com/a/20928975/82028 ) untuk membuat tombol next dan prev untuk tab pada bidang jQuery ACF:
sumber
Gunakan ini saja:
sumber
Anda tidak dapat mensimulasikan acara klik dengan javascript.
.trigger()
Fungsi jQuery hanya menjalankan peristiwa bernama "klik" pada elemen, yang dapat Anda tangkap dengan.on()
metode jQuery.sumber