我正在使用bootstrap确认插件。如果点击发生在确认之外的任何地方,我试图关闭所有确认。不幸的是,它一直在关闭任何点击。
$('html').on('mouseup', function(e) {
if ($(e.target).closest("[data-toggle='confirmation']").length === 0) {
$("[data-toggle='confirmation']").confirmation('hide');
}
答案 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: " Sim",
btnCancelLabel: " Não"
});