单击其外的任何位置时关闭引导确认

时间:2017-12-01 18:54:51

标签: javascript jquery bootstrap-confirmation

我正在使用bootstrap确认插件。如果点击发生在确认之外的任何地方,我试图关闭所有确认。不幸的是,它一直在关闭任何点击。

$('html').on('mouseup', function(e) {
  if ($(e.target).closest("[data-toggle='confirmation']").length === 0) {
    $("[data-toggle='confirmation']").confirmation('hide');
  }

这里是小提琴http://jsfiddle.net/zukdokpb/270/

1 个答案:

答案 0 :(得分:1)

您只需要定位按钮而不是html

$("#mybutton").on('click', function(e) {
  if ($(e.target).closest("[data-toggle='confirmation']").length === 0) {
    $("[data-toggle='confirmation']").confirmation('hide');
  }

});

http://jsfiddle.net/zukdokpb/271/

如果您使用data-popout属性(new fiddle),它应该为您完成 我看到你在第一个按钮上执行了此操作,但在第二个按钮上没有。添加它应该修复默认功能。然后$(e.target).closest("[data-toggle='confirmation']").length会返回0,除非您实际点击原始按钮,因此它会隐藏所有其他点击的弹出窗口。

HTML:

<a href="#Delete" class="btn btn-primary btn-large" title="Deseja realmente excluir o projeto?" data-toggle="confirmation" data-singleton="true" data-placement="top" data-popout="true"><span title="Excluir o projeto">Excluir</span></a>

<button type="button" class="btn" ng-show="patient.Archived" data-toggle="confirmation" data-singleton="true" data-popout="true">
  Archived
</button>

JS:

$('[data-toggle="confirmation"]').confirmation({
    btnOkLabel: "&nbsp;Sim",
    btnCancelLabel: "&nbsp;Não"
});