2016-06-21 20 views
1

ユーザーが要素と条件をfalseにクリックしたときに、ブートストラップのツールチップを表示する必要があります。私はこのためのコードを書いている:ときに私私はホバー上のデフォルトのツールチップを見ることができますクリックしない場合はjavascriptを使用してブートストラップのツールチップを表示/非表示

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

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

(私はそれを必要としない)と:

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

とJavascriptクリックすると、ツールチップは2秒後に隠れません。この問題を解決するには?

答えて

7

まず、あなたが内部のthisのsetTimeoutの外側とthisためのsetTimeoutの内側にそれを使用する前のdiv要素を保存する必要があり、今ではホバーにその後

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

をポップアップしません、手動で行うためにツールチップを設定する必要がありますsetTimeoutは異なります。ここで

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

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

が更新jsfiddle

+0

ありがとうございました!わたしにはできる。 –

1

ですこれはあなたの問題を解決する必要があります。

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

     setTimeout(function(){ 
      $el.tooltip('hide'); 
     }, 2000); 
    } 
}); 
関連する問題