javascript - 几秒钟后 Angular 引导弹出窗口隐藏

标签 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>

单击该图标时,会按预期打开弹出窗口。 目前,只有单击图标才能关闭弹出窗口。 我希望弹出窗口会在几秒钟后自动关闭。

这是我的 javascript 代码 - 它不起作用:

$('.pop').popover().click(function () {
   setTimeout(function () {
     $('.pop').popover('hide');
   }, 4000);
}); 

运行时

$('.pop').popover()  

在 FF 调试器上我得到:

typeError: undefined is not a function

请帮忙:)

最佳答案

灵感来自 @dfsq's idea关于 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: http://plnkr.co/edit/KQKHtz73lFk8Z4g4q6a4?p=preview

关于javascript - 几秒钟后 Angular 引导弹出窗口隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25219493/

相关文章:

JQuery 检查事件绑定(bind)

javascript - AngularJS 处理表单上的表单单击

javascript - 类型错误 : Error resolving module specifier

javascript - svg 圆圈没有很好地注册鼠标悬停

javascript - 使用 URL 在调用网页时自动按下 "accept"按钮(javascript)

javascript - Angularjs 在 Controller 之间传递工厂对象

javascript - 平均堆栈 Controller 服务器端未连接到 API

javascript - 如何获取 javascript 变量中存在的 a 标记内的文本

jquery - 是否有不需要 html anchor 的灯箱脚本

php - 使用 Ajax 调用在 CodeIgniter 中填充在线用户的 div(每 10 秒更新一次)