2016-06-21 9 views
1

Ich muss Bootstrap Tooltip zeigen, wenn Benutzer auf Element und Bedingung ist falsch.
Zeigen und verbergen Bootstrap Tooltip mit Javascript

<div data-toggle="tooltip" title="You must to log in!" class="stars">425</div> 

und Javascript:: Ich habe Code dafür geschrieben

$(".statistics .stars").click(function(){ 
    if (! user.isLogin){ 
     $(this).tooltip("show"); 

     setTimeout(function(){ 
      $(this).tooltip('hide'); 
     }, 2000); 
    } 
}); 

Wenn ich mich nicht klicken kann Standard Tooltip auf schweben zu sehen (ich brauche es nicht) und wenn ich Klick, Tooltip wird nach 2 Sekunden nicht ausgeblendet. Wie löst man diese Probleme?

Antwort

7

Zuerst müssen Sie Tooltip einstellen Handbuch sein, jetzt ist es nicht

$('div').tooltip({trigger: 'manual'}); 

Danach auf schweben Popup werden Sie div-Element speichern müssen, bevor es in SetTimeout weil this außerhalb von setTimeout verwenden und this innerhalb von setTimeout ist anders.

$('div').click(function(){ 
    var tt = $(this); 
    if (! user.isLogin){ 
    tt.tooltip("show"); 

    setTimeout(function(){ 
     tt.tooltip('hide'); 
    }, 2000); 
    } 
}); 

Hier ist die aktualisierte jsfiddle

+0

Dank! Für mich geht das. –

1

Dieses Ihr Problem lösen sollte: Sie

$(".statistics .stars").click(function(){ 
    if (! user.isLogin){ 
     var $el = $(this); 
     $el.tooltip("show"); 

     setTimeout(function(){ 
      $el.tooltip('hide'); 
     }, 2000); 
    } 
}); 
Verwandte Themen