使用javascript显示和隐藏bootstrap工具提示

时间:2016-06-21 07:46:39

标签: javascript jquery html twitter-bootstrap

当用户点击元素并且条件为false时,我需要显示bootstrap工具提示。我为此编写了代码:

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

和Javascript:

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

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

当我没有点击时,我可以看到悬停时的默认工具提示(我不需要它),当我点击时,工具提示在2秒后不会隐藏。如何解决这个问题?

2 个答案:

答案 0 :(得分:12)

首先,您需要将工具提示设置为手动,现在它不会在悬停时弹出

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

之后你需要在setTimeout中使用之前保存div元素,因为setTimeout之外的this和setTimeout里面的this是不同的。

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

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

以下是更新后的jsfiddle

答案 1 :(得分:2)

这可以解决您的问题:

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

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