Twitter Bootstrap弹出窗口忽略延迟时间

7

在stackoverflow上跟随这个问题,我创建了一个Twitter Bootstrap的弹出框,可以通过悬停来加载。但是,延迟没有使用,弹出框立即显示。这是我的代码:

$('body').delegate('.withajaxpopover', 'hover', function(event) {
   if (event.type === 'mouseenter') {
      var el=$(this);
      $.get(el.attr('data-load'), function(d) {
      el.popover({delay: { 
                     show: 750, 
                     hide: 100
                  },
                  title: "MyTitle", 
                  content: d}).popover('show', 
                                       {delay: { show: 750, hide: 100 }});
                    });
   } else {
                    $(this).popover('hide');
   }
});
$('body').delegate('.withajaxpopover', 'click', function(event) {
   $(this).popover('hide');
});

延迟被忽略了。我该怎么办?
谢谢你的帮助或提示!

3
你知道吗,延迟不适用于手动触发类型?[文档](http://twitter.github.com/bootstrap/javascript.html#popovers) - 而执行popover('show')就像手动触发。而将对象作为第二个参数传递肯定没有任何效果。 - Sherbrow
2
不,我之前不知道。但如果不使用 popover('show'),我该如何显示弹出窗口? - HombreFab
1
延迟和弹出框有点混乱... github问题链接。这个jsfiddle链接可以用吗? - Sherbrow
1个回答

7

我之前遇到过类似的问题,解决方法是让焦点集中在对象上。代码示例如下...

$('#yourobj').popover({
    trigger: 'focus',
    delay: 1000
 }).focus();

如果您需要手动触发,可以使用超时功能得到更好的效果。

setTimeout(function() {
  $('#yourobj').popover('show');
}, 500);

希望这对其他人有所帮助...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接