2012-08-07 31 views
7

Sau this question ở đây trên stackoverflow, tôi tạo ra một cửa sổ bật lên twitter bootstrap tải trên di chuột. Tuy nhiên, sự chậm trễ không được sử dụng, cửa sổ bật lên chỉ hiển thị ngay lập tức. Đây là mã của tôi:Twitter Bootstrap Popup bỏ qua sự chậm trễ

$('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'); 
}); 

Độ trễ chỉ bị bỏ qua. Tôi có thể làm gì?

Cảm ơn sự giúp đỡ hoặc gợi ý của bạn!

+3

Bạn có biết trì hoãn 'không áp dụng cho loại trình kích hoạt thủ công'? [doc] (http://twitter.github.com/bootstrap/javascript.html#popovers) - và làm 'popover ('show')' giống như hướng dẫn sử dụng. Và truyền một đối tượng như tham số thứ 2 chắc chắn sẽ không có tác dụng gì cả. – Sherbrow

+2

Không, tôi không biết điều đó trước đây. Nhưng làm thế nào tôi có thể hiển thị cửa sổ bật lên, nếu không sử dụng 'popover (' show ') '? – HombreFab

+1

Sự chậm trễ và popovers là loại lộn xộn ... [vấn đề github] (https://github.com/twitter/bootstrap/issues/512). [Jsfiddle] (http://jsfiddle.net/Sherbrow/ERY4S/) có hoạt động không? – Sherbrow

Trả lời

7

Đã xảy ra sự cố tương tự, giải quyết vấn đề bằng cách tập trung obj. Sẽ giống như thế này ...

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

thậm chí tốt hơn với một thời gian chờ, nếu bạn muốn kích hoạt thủ công ..

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

Hy vọng là sẽ giúp người khác ...

+0

'.focus()' dường như không hoạt động? – DavidScherer

Các vấn đề liên quan