Bootstrap Popover为整个表单发出Hide Event

时间:2013-12-23 16:24:46

标签: javascript twitter-bootstrap event-handling jquery popover

我注意到了一个奇怪的Twitter Bootstrap Popover。

我有一个带有弹出窗口的模态窗口。我有一个separete函数用于模态形式的“hiden”事件和一个单独的函数用于弹出窗口的“隐藏”事件。当我点击弹出窗口时会弹出,这很好。当我再次点击它时,它会消失,但它也会执行为整个表单的隐藏事件编写的函数!

这就是我的意思:

$('#modal').on('hidden', function(event) {
    console.log("modal");
}

$('#popover').on('hidde', function(event) {
    console.log("popover");
}

当我点击popover来隐藏它时,我在控制台中收到两条消息。有什么想法吗?

UPD:所以我找到的唯一解决办法就是看看点击了什么,即

$('#modal').on('hidden', function(event) {
    if (event.target.id == "popover") {
        // popover was clicked
    }
    if (event.target.id == "modal") {
        // modal was clicked
    }
}

$('#popover').on('hidde', function(event) {
    if (event.target.id == "popover") {
        // popover was clicked
    }
    if (event.target.id == "modal") {
        // modal was clicked
    }
}

1 个答案:

答案 0 :(得分:1)

这叫做冒泡。 如果元素触发事件,则所有父元素也将触发相同的事件。