Saya perlu menampilkan tooltip pada tombol yang dinonaktifkan dan menghapusnya pada tombol yang diaktifkan. Saat ini, ia bekerja secara terbalik.
Apa cara terbaik untuk membalikkan perilaku ini?
$('[rel=tooltip]').tooltip();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<hr>
<button class="btn" disabled rel="tooltip" data-title="Dieser Link führt zu Google">button disabled</button>
<button class="btn" rel="tooltip" data-title="Dieser Link führt zu Google">button not disabled</button>
Ini demo
PS: Saya ingin menjaga disabled
atribut.
javascript
jquery
html
twitter-bootstrap
twitter-bootstrap-tooltip
Lorraine Bernard
sumber
sumber
Jawaban:
Berikut ini beberapa kode yang berfungsi: http://jsfiddle.net/mihaifm/W7XNU/200/
Idenya adalah untuk menambahkan tooltip ke elemen induk dengan
selector
opsi, dan kemudian menambahkan / menghapusrel
atribut saat mengaktifkan / menonaktifkan tombol.sumber
Anda dapat membungkus tombol yang dinonaktifkan dan meletakkan tooltip pada bungkusnya:
Jika pembungkusnya memiliki
display:inline
tooltip tampaknya tidak berfungsi. Menggunakandisplay:block
dandisplay:inline-block
tampaknya berfungsi dengan baik. Tampaknya juga berfungsi baik dengan pembungkus apung.PEMBARUAN Berikut ini JSFiddle yang diperbarui yang berfungsi dengan Bootstrap terbaru (3.3.6). Terima kasih kepada @JohnLehmann untuk sarannya
pointer-events: none;
untuk tombol yang dinonaktifkan.http://jsfiddle.net/cSSUA/209/
sumber
btn-group
s?Ini dapat dilakukan melalui CSS. Properti "pointer-events" adalah yang mencegah tooltip muncul. Anda bisa menonaktifkan tombol untuk menampilkan tooltip dengan mengganti properti "pointer-events" yang diatur oleh bootstrap.
sumber
[disabled]
tombol. Juga tidak melihat Bootstrap (2.3.2) menugaskan pointer-events di mana saja di sumber.Jika Anda putus asa (seperti saya sebelumnya) untuk tooltips pada kotak centang, kotak teks dan sejenisnya, maka di sini adalah solusi hackey saya:
Contoh kerja: http://jsfiddle.net/WB6bM/11/
Untuk apa nilainya, saya percaya tooltips pada elemen formulir yang dinonaktifkan sangat penting bagi UX. Jika Anda mencegah seseorang melakukan sesuatu, Anda harus memberi tahu mereka alasannya.
sumber
Penanganan ini buruk. Saya telah memperdebatkan masalahnya adalah bahwa bootstrap secara otomatis mengatur pointer- properti properti CSS : tidak ada pada elemen yang dinonaktifkan.
Properti ajaib ini menyebabkan JS tidak dapat menangani peristiwa apa pun pada elemen yang cocok dengan pemilih CSS.
Jika Anda menimpa properti ini ke default, semuanya berfungsi seperti pesona, termasuk tooltips!
Namun Anda tidak boleh menggunakan pemilih umum, karena Anda mungkin harus menghentikan cara propagasi acara JavaScript secara manual yang Anda ketahui ( e.preventDefault () ).
sumber
Dalam kasus saya, tidak ada solusi di atas yang berfungsi. Saya menemukan bahwa lebih mudah untuk tumpang tindih tombol yang dinonaktifkan menggunakan elemen absolut sebagai:
Demo
sumber
Coba contoh ini:
Tooltips harus diinisialisasi dengan
jQuery
: pilih elemen yang ditentukan dan memanggiltooltip()
metode diJavaScript
:Tambahkan
CSS
:Dan html Anda:
sumber
Anda tidak bisa mendapatkan tip alat untuk ditampilkan pada tombol yang dinonaktifkan. Ini karena elemen yang dinonaktifkan tidak memicu peristiwa apa pun, termasuk tip alat. Taruhan terbaik Anda adalah memalsukan tombol yang dinonaktifkan (sehingga terlihat dan bertindak seperti dinonaktifkan), sehingga Anda dapat memicu tip alat.
Misalnya. Javascript:
Bukan hanya
$('[rel=tooltip]').tooltip();
HTML:
JSFiddle: http://jsfiddle.net/BA4zM/75/
sumber
Anda cukup mengesampingkan gaya "pointer-events" Bootstrap untuk tombol yang dinonaktifkan melalui mis. CSS
Lebih baik tetap eksplisit dan menonaktifkan tombol tertentu misalnya
sumber
Inilah yang saya dan tekromancr datang dengan.
Elemen contoh:
catatan: atribut tooltip dapat ditambahkan ke div terpisah, di mana id div itu akan digunakan saat memanggil .tooltip ('menghancurkan'); atau .tooltip ();
ini memungkinkan tooltip, letakkan di javascript apa pun yang termasuk dalam file html. baris ini mungkin tidak perlu ditambahkan, namun. (jika tooltip menunjukkan tanpa baris ini maka jangan repot-repot memasukkannya)
hancurkan tooltip, lihat di bawah untuk penggunaan.
mencegah tombol agar tidak dapat diklik. karena atribut yang dinonaktifkan tidak sedang digunakan, ini perlu, jika tidak tombolnya tetap dapat diklik meskipun "terlihat" seolah-olah dinonaktifkan.
Menggunakan bootstrap, kelas btn dan btn-nonaktif tersedia untuk Anda. Ganti ini dalam file .css Anda sendiri. Anda dapat menambahkan warna apa pun atau apa pun yang Anda inginkan seperti tombol ketika dinonaktifkan. Pastikan Anda menjaga kursor: default; Anda juga dapat mengubah seperti apa .btn.btn-success.
tambahkan kode di bawah ini ke javascript apa pun yang mengendalikan tombol yang diaktifkan.
tooltip sekarang hanya akan ditampilkan ketika tombol dinonaktifkan.
jika Anda menggunakan angularjs saya juga punya solusi untuk itu, jika diinginkan.
sumber
destroy
pada tooltip. (Lihat ini ) Namun,$("#element_id").tooltip('disable')
dan$("#element_id").tooltip('enable')
bekerja untuk saya.Jika itu membantu siapa pun, saya bisa mendapatkan tombol yang dinonaktifkan untuk menunjukkan tooltip hanya dengan meletakkan rentang di dalamnya dan menerapkan hal-hal tooltip di sana, sudut di sekitarnya ...
sumber
Berdasarkan Bootstrap 4
Semua detail di sini: Bootstrap 4 doc
sumber
Kode kerja untuk Bootstrap 3.3.6
Javascript:
CSS:
sumber
Anda dapat meniru efek menggunakan CSS3.
Cukup lepaskan status yang dinonaktifkan dari tombol dan tooltip tidak muncul lagi .. ini bagus untuk validasi karena kode ini membutuhkan lebih sedikit logika.
Saya menulis pena ini sebagai ilustrasi.
CSS3 Disable Tooltips
sumber
Cukup tambahkan kelas yang dinonaktifkan ke tombol alih-alih atribut yang dinonaktifkan untuk membuatnya tampak dinonaktifkan.
Catatan: tombol ini hanya tampaknya dinonaktifkan, tetapi masih memicu peristiwa, dan Anda hanya perlu memperhatikan hal itu.
sumber
pointer-events: auto;
tidak bekerja pada sebuah<input type="text" />
.Saya mengambil pendekatan yang berbeda. Saya tidak menonaktifkan kolom input, tetapi membuatnya berfungsi sebagai dinonaktifkan melalui css dan javascript.
Karena bidang input tidak dinonaktifkan, tooltip ditampilkan dengan benar. Itu dalam kasus saya cara yang lebih sederhana daripada menambahkan pembungkus kalau-kalau bidang input dinonaktifkan.
sumber
Untuk Bootstrap 3
HTML
CSS
JS
sumber
Saya akhirnya memecahkan masalah ini, setidaknya dengan Safari, dengan meletakkan "pointer-events: auto" sebelum "dinonaktifkan". Urutan terbalik tidak berhasil.
sumber