Saya memiliki tooltip pada elemen jangkar, yang mengirimkan permintaan AJAX saat klik. Elemen ini memiliki tooltip (dari Twitter Bootstrap). Saya ingin konten tooltip berubah ketika permintaan AJAX berhasil kembali. Bagaimana saya bisa memanipulasi tooltip setelah inisiasi?
jquery
twitter-bootstrap
tooltip
pemberontakan
sumber
sumber
$(element).attr('title', 'NEW_TITLE').tooltip('fixTitle').tooltip('show');
$(element).attr('data-original-title', newValue).tooltip('show');
adalah solusi kerja paling sederhana bagi saya.Di Bootstrap 3 cukup untuk memanggil
elt.attr('data-original-title', "Foo")
karena perubahan pada"data-original-title"
atribut sudah memicu perubahan pada tampilan tooltip.UPDATE: Anda dapat menambahkan .tooltip ('show') untuk segera menampilkan perubahan, Anda tidak perlu mouseout dan mouseover target untuk melihat perubahan pada judul
sumber
.tooltip('show');
untuk menampilkannya setelah pembaruanAnda dapat memperbarui teks tooltip tanpa benar-benar memanggil acara / sembunyikan:
sumber
.tooltip('show')
di ujung rantai, bekerja untuk saya.setContent
danshow
lakukan triknya! Anda dapat mengubahdata-original-title
secara langsung alih-alih menggunakanfixTitle
inilah solusi yang bagus jika Anda ingin mengubah teks tanpa menutup dan membuka kembali tooltip.
dengan cara ini, teks diganti tanpa menutup tooltip (tidak memposisikan ulang, tetapi jika Anda melakukan satu perubahan kata dll itu harus baik-baik saja). dan ketika Anda mengarahkan + kembali pada tooltip, itu masih diperbarui.
** ini bootstrap 3, untuk 2 Anda mungkin harus mengubah data / nama kelas
sumber
$tip
bukan atribut dari$(element)
$(element).attr('title', newTitle).tooltip('fixTitle').parent().find('.tooltip .tooltip-inner').text(newTitle);
untuk Bootstrap 4:
sumber
Ini berfungsi jika tooltip telah dipakai (mungkin dengan javascript):
sumber
$('#tooltip_id').data('bs.tooltip').options.title = 'New_value!';
Untuk bootstrap 3.x
Ini sepertinya solusi terbersih:
Show digunakan untuk membuat pembaruan judul segera dan tidak menunggu tooltip disembunyikan dan ditampilkan lagi.
sumber
Berikut ini adalah pembaruan untuk Bootstrap 4 :
Tetapi cara terbaik adalah melakukan ini:
atau sebaris:
Dari sisi UX Anda hanya melihat bahwa teks diubah tanpa efek pudar atau sembunyikan / tampilkan dan tidak perlu
_fixTitle
.sumber
Anda bisa mengubah
data-original-title
menggunakan kode berikut:sumber
Bootstrap 4
https://getbootstrap.com/docs/4.1/components/tooltips/#tooltipdispose
sumber
Berikut ini bekerja yang terbaik untuk saya, pada dasarnya saya membuang tooltip yang ada dan tidak repot-repot menunjukkan tooltip baru. Jika memanggil show di tooltip seperti di jawaban lain, itu muncul meskipun kursor tidak melayang di atasnya.
Alasan saya pergi untuk solusi ini adalah bahwa solusi lain, menggunakan kembali tooltip yang ada, menyebabkan beberapa masalah aneh dengan tooltip kadang-kadang tidak muncul ketika mengarahkan kursor di atas elemen.
sumber
data('bs.tooltip')
alih-alihdata('tooltip')
Di bootstrap 4 saya hanya menggunakan
$(el).tooltip('dispose');
lalu menciptakan kembali seperti biasa. Jadi, Anda dapat meletakkan buang di depan fungsi yang membuat tooltip untuk memastikan itu tidak menggandakan.Harus memeriksa keadaan dan mengotak-atik nilai tampaknya kurang ramah.
sumber
Anda dapat mengatur konten pada panggilan tooltip dengan suatu fungsi
Anda tidak harus menggunakan hanya judul elemen yang dipanggil.
sumber
Terima kasih kode ini sangat membantu saya, saya merasa efektif pada proyek saya
$(element).attr('title', 'message').tooltip('fixTitle').tooltip('show');
sumber
Hancurkan tooltip yang sudah ada sebelumnya sehingga kami dapat mengisi kembali dengan konten tooltip baru
sumber
Saya tidak bisa mendapatkan jawaban yang berfungsi, berikut ini solusinya:
sumber
Saya pikir Mehmet Duran hampir benar, tetapi ada beberapa masalah ketika menggunakan beberapa kelas dengan tooltip yang sama dan penempatannya. Kode berikut juga menghindari kesalahan js memeriksa apakah ada kelas yang disebut "tooltip_class". Semoga ini membantu.
sumber
Ubah teks dengan mengubah teks dalam elemen secara langsung. (tidak memperbarui posisi tooltip).
Ubah teks dengan menghancurkan tooltip lama, lalu buat dan tampilkan yang baru. (Menyebabkan yang lama memudar dan yang baru memudar)
Saya menggunakan metode teratas untuk menghidupkan "Penghematan." pesan (menggunakan
 
sehingga tooltip tidak berubah dalam ukuran) dan untuk mengubah teks menjadi "Selesai." (plus padding) saat permintaan selesai.sumber
Ini bekerja untuk saya: (bootstrap 3.3.6; jquery = 1.11.3)
Atribut
data-html="true"
memungkinkan untuk menggunakan html pada judul tooltip.sumber
Dengan Boostrap objek Tooltip:
sumber
Untuk BS4 (dan BS3 dengan perubahan kecil) .. setelah pencarian dan uji coba selama berjam-jam, saya menemukan solusi yang paling dapat diandalkan untuk masalah ini dan bahkan memecahkan masalah membuka lebih dari satu (tooltip atau popover) pada saat yang sama, dan masalah membuka secara otomatis setelah kehilangan fokus, dll.
sumber
Saya hanya menguji ini di bootstrap 4 & tanpa memanggil .show ()
sumber
Anda dapat menggunakan kode ini untuk menyembunyikan tip alat, mengubah judulnya, dan menampilkan tooltip lagi, ketika permintaan ajax berhasil kembali.
sumber
Saya menggunakan jalan keluar yang mudah ini:
sumber
Berguna jika Anda perlu mengubah teks tooltip setelah diinisialisasi dengan attr 'data-original-title'.
sumber