2012-08-07 53 views
7

以下this question这里在stackoverflow,我创建了一个twitter引导popover加载悬停。但是,延迟不被使用,popover立即显示。这是我的代码: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

你知道吗该延迟'不适用于手动触发类型? [doc](http://twitter.github.com/bootstrap/javascript.html#popovers) - 做'popover'('show')'就像手动。而传递一个对象作为第二个参数肯定没有任何作用。 – Sherbrow 2012-08-07 10:29:28

+2

不,我以前不知道。但是,如果不使用popover('show')',我怎样才能显示popover? – HombreFab 2012-08-07 10:58:45

+1

延迟和弹出是一种混乱... [github问题](https://github.com/twitter/bootstrap/issues/512)。那[jsfiddle](http://jsfiddle.net/Sherbrow/ERY4S/)会起作用吗? – Sherbrow 2012-08-07 12:49:50

回答

7

有类似的问题,通过集中obj解决它。会是这个样子......

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

甚至更​​好超时,如果你想手动触发..

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

希望是帮助别人......

+0

'.focus()'不再似乎工作? – DavidScherer 2015-04-15 18:32:46