<p>dipilih: buka tidak berfungsi</p>

Dibuat pada 22 Des 2013  ·  5Komentar  ·  Sumber: harvesthq/chosen

Saya mencoba membuka pilih setelah mengklik tombol, Tetapi tidak berhasil. Jika saya menyisipkan dan mengingatkan() setelah pemicu itu terbuka ...
(Menggunakan v1.0 yang dipilih dengan jquery)

contoh:

<select id="select">
    <option value="1">a</option>
    <option value="2">b</option>
    <option value="3">c</option>
</select>
<br>
<button onclick="$('#select').trigger('chosen:open'); ">Press this button to open (doesnt work) </button>
<button onclick="$('#select').trigger('chosen:open'); alert('ups!');">Press this button to open (work???)</button>

<script>
$(document).ready(function() {
$('#select').chosen();
});
</script>

contoh di: http://jsfiddle.net/EArg6/28/

Komentar yang paling membantu

Ketika Anda mengklik tombol, Terpilih menerima acara chosen:open . Namun, acara terus menggelembungkan DOM dan Terpilih segera mendeteksi klik pada elemen yang bukan Terpilih aktif ... sehingga menutupnya. Masuk akal?

Jika Anda bekerja dengan JS sebaris, solusi termudah adalah menggunakan setTimeout untuk keluar dari tumpukan peristiwa saat ini:

onClick="setTimeout(function(){ $('#select').trigger('chosen:open'); }, 0)"

Anda hampir pasti tidak boleh menggunakan JS sebaris. Anda masih dapat menggunakan setTimeout jika Anda mau, tetapi menghentikan gelembung acara saja sudah cukup.

$('button').on("click", function(evt){
  evt.stopPropagation();
  $('#select').trigger('chosen:open');
});

Saya telah memperbarui biola Anda dengan kode kerja ini: http://jsfiddle.net/EArg6/33/

Semua 5 komentar

Tidak ada tombol yang berfungsi untuk saya di Fiddle Anda (di Safari).

Browser/versi apa yang Anda gunakan?

Saya mengujinya dengan:

  • Firefox 25.0.1
  • Opera 12.16
  • Chrome 31.0.1650.63 m

Tombol pertama tidak berfungsi
Tombol kedua membuka daftar opsi (hanya untuk menutup ketika saya menutup kotak "peringatan").

Ketika Anda mengklik tombol, Terpilih menerima acara chosen:open . Namun, acara terus menggelembungkan DOM dan Terpilih segera mendeteksi klik pada elemen yang bukan Terpilih aktif ... sehingga menutupnya. Masuk akal?

Jika Anda bekerja dengan JS sebaris, solusi termudah adalah menggunakan setTimeout untuk keluar dari tumpukan peristiwa saat ini:

onClick="setTimeout(function(){ $('#select').trigger('chosen:open'); }, 0)"

Anda hampir pasti tidak boleh menggunakan JS sebaris. Anda masih dapat menggunakan setTimeout jika Anda mau, tetapi menghentikan gelembung acara saja sudah cukup.

$('button').on("click", function(evt){
  evt.stopPropagation();
  $('#select').trigger('chosen:open');
});

Saya telah memperbarui biola Anda dengan kode kerja ini: http://jsfiddle.net/EArg6/33/

terima kasih @pfiller

Terima kasih @pfiller , solusi dan penjelasan itu menyelamatkan saya dari mulas!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat