Мне трудно поверить, что один из создателей bootstrap сказал вам, что это невозможно, так как, безусловно, так оно и есть - просто нужно немного повозиться.
Вот решение в coffeescriptи jquery, протестировано и работает:
timer = null
el = null
el2 = null
$('[rel=twipsy]').live
mouseenter: ->
$('.twipsy').remove()
$(this).twipsy('show')
, mouseleave: ->
el = $(this)
timer = setTimeout((->
el.twipsy('hide')
$('body .twipsy:last-child').remove()
), 10)
$('.twipsy').live
mouseenter: ->
clearTimeout(timer)
el2 = $(this)
el2.css 'z-index', 1000 if el2.hasClass 'in'
, mouseleave: ->
timer = setTimeout((->
el.twipsy('hide')
el2.css 'z-index', 1
$('body .twipsy:last-child').remove()
), 10)
Если вы работаете с приложением, которое получает большой трафик, должно работать в старых браузерах или на старых компьютерах или иным образом сильно зависит от производительности, я очень рекомендуюразвернуть собственное решение здесь, так как использование большого количества живых обработчиков не очень хорошая идея.Но для чего-то маленького / нормального, это работает просто отлично.Я обнаружил только одну маленькую очень странную ошибку, которая может появиться (хотя и редко), если вы зависаете определенным образом.Проблема перекрытия решается с помощью манипулирования z-индексом.
Если вам нужно это в vanilla javascript, просто вставьте его в консоль «try coffeescript» на http://coffeescript.org/, и она скомпилируется для вас.