我正在使用 twitter bootstrap ,想知道是否有办法让我知道当前可见的模态是如何隐藏的。
一旦用户离开模态(点击黑色背景或通过按钮取消它),在更改内部的内容后,会弹出另一个模式并询问他是否确定。
这一切都很好,但是在我以编程方式隐藏模态之后发生同样的事情时会出现问题:
$("#modalName").modal('hide');
有没有办法让我知道模态究竟是如何被隐藏的?
感谢。
修改
安德烈:我正在努力寻找你的第二个解决方案,但我得到了一些奇怪的反应
我更改了bootstrap hide函数以包含另一个参数:
hide: function (e, programatically) {
alert(e);
alert(programatically);
if (programatically)
alert('should be seen only from code');
当我从API调用时,我使用它:
$("#modalName").modal("hide", true)
奇怪的是,'e'上的警报显示'真实'值,'编程'警告显示我不应该。此外,当这样调用时,模态不会被隐藏,我收到此错误:
TypeError: Object #<error> has no method 'preventDefault'
答案 0 :(得分:0)
是的,可以使用 event.target
。
与此类似的东西
document.onclick = function (e) {
var tar = e.target;
var elementTag = $(tar).get(0).tagName;
if (elementTag == "BUTTON") {
alert("button clicked");
} else {
alert("others");
}
}
您可以尝试更改为班级名称/ ID(如果有)。
希望你能理解。
答案 1 :(得分:0)
由于你使用的是jQuery,你可以使用event.target:(IE window.event use event.srcElement):
$(submitButton).click(function(e) {
alert(e.target.src);
});
添加programatically
等参数,并将其设置为仅在通过编程方式调用时显示其他弹出窗口:
hide: function ( e, programatically ) {
[...]
if (!programatically){
// Show additional confirm popup
}
[...]
}
以隐藏方式隐藏时调用: $(“#modalName”)。modal('hide',true);
答案 2 :(得分:0)
您可以使用以下代码隐藏引导模式。
$("#modalName").hide();
$(".modal-backdrop").hide();