如何通过按钮或以编程方式隐藏引导模式

时间:2013-09-25 12:01:02

标签: jquery twitter-bootstrap

我正在使用 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'

3 个答案:

答案 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)

  1. 由于你使用的是jQuery,你可以使用event.target:(IE window.event use event.srcElement):

    $(submitButton).click(function(e) {
        alert(e.target.src);
    });
    
  2. 添加programatically等参数,并将其设置为仅在通过编程方式调用时显示其他弹出窗口:

    hide: function ( e, programatically ) {
        [...]
        if (!programatically){
             // Show additional confirm popup
        }
        [...]
    }
    
  3. 以隐藏方式隐藏时调用:        $(“#modalName”)。modal('hide',true);

答案 2 :(得分:0)

您可以使用以下代码隐藏引导模式。

 $("#modalName").hide();
 $(".modal-backdrop").hide();