2015-08-14 3 views
4

У меня есть несколько popovers на одной странице, и у них есть кнопка увольнения.Popover показывает только с каждым нажатием кнопки при нажатии кнопки

Если я отклонил popover, нажав на ту же кнопку, которая открыла его, у меня нет проблем. Проблема возникает, когда я нажимаю на одну из кнопок удаления в popover.

Когда я нажимаю кнопку «Отмена» в popover, popover закрывается, но в следующий раз, когда я нажимаю, чтобы открыть его, он не открывается. Он открывается, только если я нажму кнопку на второй раз.

HTML:

<button type="button" class="btn btn-default" data-toggle="popover" data-placement="right" data-content="<div class=&quot;clearfix&quot;><div class=&quot;btn-group&quot;><button class=&quot;btn btn-success btn-sm&quot;>Yes</button><button class=&quot;btn btn-default btn-sm close-popover&quot; data-dismiss=&quot;popover&quot; >No</button></div></div></div>" title="Delete this">Delete this</button> 

JS:

$.fn.extend({ 
    popoverClosable: function (options) { 
     var defaults = { 
      html: true, 
      template: 
       '<div class="popover">\ 
<div class="arrow"></div>\ 
<div class="popover-header">\ 
<button type="button" class="close" data-dismiss="popover" aria-hidden="true">&times;</button>\ 
<h3 class="popover-title"></h3>\ 
</div>\ 
<div class="popover-content"></div>\ 
</div>' 
     }; 
     options = $.extend({}, defaults, options); 
     var $popover_togglers = this; 
     $popover_togglers.popover(options); 
     $popover_togglers.on('click', function (e) { 
      e.preventDefault(); 
      $popover_togglers.not(this).popover('hide'); 
     }); 
     $('html').on('click', '[data-dismiss="popover"]', function (e) { 
      $popover_togglers.popover('hide'); 
     }); 
    } 
}); 

$(function() { 
    $('[data-toggle="popover"]').popoverClosable(); 
}); 

JSFiddle

Как я могу сделать мой поповер открыт каждый раз, когда я нажимаю на кнопку, чтобы открыть ее?

ответ

4

Похож на ошибку в 3.3.5. См https://github.com/twbs/bootstrap/issues/16732

Я работал вокруг него с:

if ($.fn.popover.Constructor.VERSION == "3.3.5") { 
    $('[data-toggle="popover"]').on("hidden.bs.popover", function() { 
    $(this).data("bs.popover").inState.click = false 
    }) 
} 
Смежные вопросы