I need to show bootstrap tooltip when user click on element and condition is false. I've written code for this:
<div data-toggle="tooltip" title="You must to log in!" class="stars">425</div>
and Javascript:
$(".statistics .stars").click( function(){
if (! user.isLogin){
$(this).tooltip("show");
setTimeout(function(){
$(this).tooltip( 'hide' );
}, 2000);
}
});
When I don't click I can see default tooltip on hover (I don't need it) and when I click, tooltip don't hide after 2 seconds. How to solve this problems?
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.
JS Tooltip (tooltip. js) The Tooltip plugin is small pop-up box that appears when the user moves the mouse pointer over an element. For a tutorial about Tooltips, read our Bootstrap Tooltip Tutorial.
First you need to set tooltip to be manual, now it will not popup on hover
$('div').tooltip({trigger: 'manual'});
After that you need to save div element before using it inside setTimeout because this
outside of setTimeout and this
inside of setTimeout is different.
$('div').click(function(){
var tt = $(this);
if (! user.isLogin){
tt.tooltip("show");
setTimeout(function(){
tt.tooltip( 'hide' );
}, 2000);
}
});
Here is the updated jsfiddle
This should solve your problem:
$(".statistics .stars").click( function(){
if (! user.isLogin){
var $el = $(this);
$el.tooltip("show");
setTimeout(function(){
$el.tooltip( 'hide' );
}, 2000);
}
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With