0

我正在使用twitter bootstrap,想知道是否有办法让我知道当前可见的模态是如何隐藏的。

发生的情况是,一旦用户在更改内部内容后离开模式(单击黑色背景或通过按钮将其关闭),就会弹出另一个模式并询问他是否确定。

这一切都很好,但是当我以编程方式隐藏模式后发生同样的事情时,就会出现问题:

$("#modalName").modal('hide');

有没有办法让我知道模态到底是如何隐藏的?

谢谢。

编辑:

安德烈:我正在尝试你的第二个解决方案,但我得到了一些奇怪的反应

我更改了引导隐藏功能以包含另一个参数:

hide: function (e, programatically) {
  alert(e);
  alert(programatically);
  if (programatically)
    alert('should be seen only from code');

当我从 API 调用时,我使用这个:

$("#modalName").modal("hide", true)

奇怪的是,“e”上的警报向我显示“真实”值,而“以编程方式”上的警报向我显示 undefiend。此外,当这样调用时,模态不会隐藏,我收到此错误:

TypeError: Object #<error> has no method 'preventDefault'
4

3 回答 3

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(如果有)。

希望你能理解。

于 2013-09-25T12:08:28.017 回答
0
  1. 由于您使用的是 jQuery,因此您可以使用 event.target: (IE window.event 使用 event.srcElement):

    $(submitButton).click(function(e) {
        alert(e.target.src);
    });
    
  2. 添加一个类似programatically.. 的参数,并将其设置为仅在它不通过编程调用时才显示附加弹出窗口:

    hide: function ( e, programatically ) {
        [...]
        if (!programatically){
             // Show additional confirm popup
        }
        [...]
    }
    

并在程序隐藏时调用: $("#modalName").modal('hide', true);

于 2013-09-25T12:40:23.510 回答
0

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

 $("#modalName").hide();
 $(".modal-backdrop").hide();
于 2013-11-26T04:15:14.807 回答