Javascript 角引导popover几秒钟后隐藏

Javascript 角引导popover几秒钟后隐藏,javascript,jquery,angularjs,click,popover,Javascript,Jquery,Angularjs,Click,Popover,这是我的html代码: <li class="pop" popover="popover text goes here" popover-trigger="mousedown"> <a><i class="icon-link"></i></a> </li> 跑步时 $('.pop').popover() 在FF调试器上,我得到: typeError: undefined is not a function

这是我的html代码:

<li class="pop" popover="popover text goes here" popover-trigger="mousedown">
    <a><i class="icon-link"></i></a>
</li>
跑步时

$('.pop').popover()  
在FF调试器上,我得到:

typeError: undefined is not a function

请提供帮助:)

最简单的方法是创建一个布尔变量,并给它一个真/假值,如果单击弹出窗口,一个方法将被称为抛出控制器,并将是一个将变量翻转为假的超时。此变量将在标记“ng show”中用于显示和隐藏


致以最诚挚的问候

我能想到的唯一方法是有点奇怪,但很有效。将
ngMousedown
处理程序添加到
LI
元素中,并在控制器中为其定义处理程序:

<li class="pop" popover="popover text goes here" ng-mousedown="mousedown()" popover-trigger="mousedown">
    <a><i class="icon-link"></i> Link</a>
</li>
$scope.mousedown = function() {
    var tooltipScope = this;
    $timeout(function() {
        tooltipScope.tt_isOpen = false;
    }, 2000);
};
其思想是AngularUI的popover在内部使用
$tooltip
服务,该服务在元素范围内定义了一系列内部属性。这些属性之一是
tt_isOpen
。如果将其设置为
false
工具提示将隐藏

演示:受about
tt_isOpen
的启发,您可以创建一个自定义指令来执行自动隐藏

.directive('popoverAutoclose', function ($timeout) {
  return {
    restrict: 'A',
    link: function (scope, element, attrs) {
      var timeoutHandle;

      scope.$watch('tt_isOpen', function (isOpen) {
        $timeout.cancel(timeoutHandle);

        if (isOpen) {
          timeoutHandle = $timeout(function () {
            scope.tt_isOpen = false;
          }, +attrs.popoverAutoclose || 5000);
        }
      });
    }
  }
});
然后像这样使用它:

<li class="pop" popover="popover text goes here" popover-autoclose="2000" popover-trigger="mousedown">

  • 示例Plunker:

    你能准备一个演示吗..我想这就是应该怎么做的。而不是像在我的例子中那样弄乱控制器。这种方法是唯一正确的。
    <li class="pop" popover="popover text goes here" popover-autoclose="2000" popover-trigger="mousedown">