我注意到了一个奇怪的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
}
}
答案 0 :(得分:1)
这叫做冒泡。 如果元素触发事件,则所有父元素也将触发相同的事件。