Saya telah berhasil mendapatkan beberapa tip alat untuk bekerja pada akhirnya dengan kode berikut:
<a href="#" rel="tooltip" title="Tool tip text here">Hover over me</a>
lalu
<script>
$('[rel=tooltip]').tooltip();
</script>
Masalah yang saya temui adalah ia menggunakan tooltips jQueryUI (tanpa panah, tooltips yang jelek), bukan Bootstraps.
Apa yang harus saya lakukan untuk menggunakan Bootstrap Tooltips alih-alih jQueryUI?
jquery-ui
twitter-bootstrap
markdotnet
sumber
sumber
Jawaban:
UI jQuery dan Bootstrap digunakan
tooltip
untuk nama plugin. Gunakan$.widget.bridge
untuk membuat nama lain untuk versi jQuery UI dan memungkinkan plugin Bootstrap tetap bernama tooltip (mencoba menggunakannoConflict
opsi pada widget Bootstrap hanya menghasilkan banyak kesalahan karena tidak berfungsi dengan baik; masalah itu telah dilaporkan di sini ):Jadi kode untuk membuatnya bekerja:
Bagus salin kode tempel yang juga menangani konflik tombol:
sumber
'undefined' is not an object (evaluating '$.widget.bridge')
bridge
hal itu, lalu mengimpor bootstrap.Solusi sederhana adalah memuat bootrap.js setelah jquery-ui.js, sehingga metode bootstrap .tooltip diutamakan.
sumber
Ini bekerja untuk saya:
Jika Anda perlu menggunakan JQuery-UI tetapi Anda ingin menggunakan tooltip bootstrap, cukup dapatkan versi khusus JQuery-UI dari situs web ini .
Hapus centang opsi "Tooltip", dan unduh (itu akan menjadi sesuatu seperti "jquery-ui-1.10.4.custom.js").
Cukup tambahkan ke proyek Anda alih-alih versi yang Anda gunakan sekarang dan, Anda siap berpesta. Ini akan menghindari konflik. Itu bekerja seperti pesona bagiku!
sumber
Jika Anda harus memuat
jquery-ui.js
setelah dibootstrap.js
sini adalah bagaimana melakukannya:Ini akan menimpa tooltip jquery-ui dan selalu menggunakan bootstraps.
sumber
Dengan asumsi bahwa UI akan dipanggil setelah bootsrap diinisialisasi
Simpan fungsi bootstrap tepat sebelum UI diinisialisasi
Kemudian sebut sebagai berikut
sumber
$.fn.bstooltip = $.fn.tooltip.noConflict();
Solusi ini sepertinya bekerja dengan baik untuk saya.
sumber
Bagaimana kalau hanya menggunakan popover Bootstrap saja? BS popovers tidak menciptakan konflik yang sama walaupun mereka memerlukan komponen tooltip.js yang sama. Ya, mereka lebih bergaya tetapi tidak menyebabkan tombol JQuery UI saya menjadi miring.
Saya menggunakan Jquery UI hanya untuk autocomplete / comboboxes kustom (jadi tidak bisa mengklaim kontrol JQ-UI lainnya ok) dan tidak ada yang di atas bekerja untuk memperbaiki masalah CSS pada tombol combobox menjadi "unstyled" ketika menggunakan BS Tooltips. Beralih ke BS Popovers pada dasarnya memberikan efek yang sama tanpa konflik, tanpa pemesanan ulang impor skrip saya, dan tidak diperlukan pernyataan jembatan yang eksplisit.
sumber
coba gunakan jQuery.noConflict () dan lihat apakah itu membantu Anda sama sekali. Sepertinya bootstrap dan jQuery menggunakan namespace yang sama, dan mungkin tooltips bootstrap dan jQuery dimuat ke dalam fungsi yang sama, atau yang dimuat terlebih dahulu.
Anda juga dapat memeriksa untuk melihat perpustakaan mana yang dimuat terlebih dahulu. Biasanya jika Anda mendeklarasikan fungsi yang sama dua kali dalam javascript, yang kedua adalah yang digunakan.
Ketiga, periksa paket jQueryUI ( di situs web mereka) dan lihat apakah Anda dapat mengunduh versi yang tidak menyertakan tooltips (saya memeriksa dan ini benar-benar dapat dilakukan).
sumber
Ada solusi yang mudah dan bagus, atur ulang tautan file bootstrap dan jquery ui Anda seperti ini:
Hanya memuat jQueryui sebelum memuat file js boostrap. Ini bekerja untuk saya.
sumber
Cara mudah adalah memuat bootstrap.js setelah jquery-ui.js, sehingga bootstrap .tooltip menimpa UI jquery. Jika Anda menggunakan pemuat modul seperti requireejs, maka Anda bisa membuat bootstrap bergantung pada jquery-ui, seperti:
sumber