2014-06-14 76 views
1

我試圖使用Bootstrap彈出窗口顯示錯誤。只有在第一次點擊按鈕後,代碼才能正常工作。在下次點擊時,彈出窗口顯示,但立即消失。Twitter Bootstrap Popover在演出後立即隱藏

增加對酥料餅再使用簡單的輔助:

var popoverHelper = function (selector) { 
    var $element = $(selector); 
    $element.popover({ 
     placement: "bottom", 
     trigger: 'manual' 
    }); 
    return { 
     showPopover: function (text) { 
      $element.attr('data-content', text); 
      $element.popover('show'); 
     }, 
     hidePopover: function() { 
      $element.popover('hide'); 
     }, 
     destroyPopover: function() { 
      $element.popover('destroy'); 
     } 
    }; 
}; 

使用幫手:

var pHelper = popoverHelper('#postInput'); 

$('#postButton').click(function (e) { 
    e.preventDefault(); 
    // hide open popover if open 
    pHelper.hidePopover(); 
    ... 
    // some functionality 
    ... 
    // show popover if some errors 
    pHelper.showPopover('error occurs!!'); 
}); 

jQuery的使用 - 2.1.1,Twitter的引導 - 3.1.1。

完整樣品在jsfiddle。小提示:如果我叫popover銷燬,並且如果我在展會上進行popover re-init,那麼一切運作良好。 但我認爲這不是最佳。

Jsfiddle樣本。

+0

這是你想要的http://jsfiddle.net/VX7As/2/ –

+0

我沒有看到任何原因隱藏popover點擊事件,如果它已經顯示。 –

+0

而不是隱藏在點擊,我猜你應該隱藏在輸入的焦點() –

回答

1

入住這Demo Fiddle

一個更好的解決辦法是隱藏的錯誤域用戶操作酥料餅。

$('input').focus(function(){ 
    pHelper.hidePopover(); 
}); 
相關問題