Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQueryUI Tooltips are competing with Twitter Bootstrap

I have been able to get some tool tips to work finally with the following code:

<a href="#" rel="tooltip" title="Tool tip text here">Hover over me</a> 

and then

<script>     $('[rel=tooltip]').tooltip(); </script> 

The problem I'm running into is that it is using jQueryUI tooltips (no arrows, big ugly tooltips) instead of Bootstraps.

What do I need to do to make use of the Bootstrap Tooltips instead of jQueryUI?

like image 671
markdotnet Avatar asked Dec 05 '12 20:12

markdotnet


People also ask

Are Bootstrap tooltips accessible?

As you may know, the Twitter bootstrap tooltips are not accessible (I.E. they are not being read by screen readers).

How do I use bootstrap 5 tooltips?

To create a tooltip, add the data-bs-toggle="tooltip" attribute to an element. Note: Tooltips must be initialized with JavaScript to work.

How do I enable Bootstrap tooltip?

Tooltips can be enabled via JavaScript — just call the tooltip() Bootstrap method with the id , class or any CSS selector of the target element in your JavaScript code. You can either initialize tooltips individually or all in one go.

How do I use bootstrap 4 tooltips?

How To Create a Tooltip. To create a tooltip, add the data-toggle="tooltip" attribute to an element. Note: Tooltips must be initialized with jQuery: select the specified element and call the tooltip() method.


1 Answers

Both jQuery UI and Bootstrap use tooltip for the name of the plugin. Use $.widget.bridge to create a different name for the jQuery UI version and allow the Bootstrap plugin to stay named tooltip (trying to use the noConflict option on the Bootstrap widget just result in a lot of errors because it does not work properly; that issue has been reported here):

// Resolve name collision between jQuery UI and Twitter Bootstrap $.widget.bridge('uitooltip', $.ui.tooltip); 

So the code to make it work:

// Import jQuery UI first <script src="/js/jquery-ui.js"></script> // Resolve name collision between jQuery UI and Twitter Bootstrap $.widget.bridge('uitooltip', $.ui.tooltip); // Then import bootstrap <script src="js/bootstrap.js"></script> 

Nice copy paste code that also handles the button conflict:

<script type="application/javascript" src="/js/jquery.js"></script> <script type="application/javascript" src="/js/jquery-ui.js"></script> <script> /*** Handle jQuery plugin naming conflict between jQuery UI and Bootstrap ***/ $.widget.bridge('uibutton', $.ui.button); $.widget.bridge('uitooltip', $.ui.tooltip); </script> <script type="application/javascript" src="/js/bootstrap.js"></script> 
like image 105
The Demz Avatar answered Oct 24 '22 23:10

The Demz