【发布时间】:2022-01-09 00:46:37
【问题描述】:
单击时我有一个 div,它应该会触发一个弹出框并显示一个单独的 div,它工作正常。问题是,当您单击外部 div 显示弹出框后,它会删除弹出框,但在您单击弹出框 div 以再次显示弹出框时删除弹出框后,您必须单击两次才能触发它。为什么需要点击两次?我该如何解决这个问题,以便它始终一键运行?任何帮助表示赞赏。提前致谢
更新:
我尝试使用它来解决它,但它也不起作用。 它在 bootstrap 5 上完全不起作用,但在 bootstrap 4 上它能够捕捉到点击没有触发弹出窗口但解决方案不起作用。尝试过的解决方案:
$('body').on('hidden.bs.popover', function (e) {
$(e.target).data("bs.popover")._activeTrigger.click = true
});
$(function() {
$(".testDiv").popover({
container: 'body',
html: true,
placement: 'bottom',
sanitize: false,
content: function() {
$('.testDivCon').show()
$('.wifiInfoContent').append('<button class="testButton">Click Me</button>')
return $('.wifiInfoContent').html();
}
});
});
$('.testDivCon').on('click', function() {
$('.popover').remove()
$('.testDivCon').hide()
})
$(document).on('click', '.testButton', function() {
console.log('clicked')
})
.testDivCon {
display: none;
position: absolute;
top: 0%;
left: 0%;
width: 100%;
height: 100%;
background-color: green;
}
.testDiv {
position: absolute;
top: 10%;
left: 20%;
width: 20%;
height: 15%;
background-color: black;
}
.wifiInfoContent {
display: none;
}
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<div class="testDivCon"></div>
<div class="testDiv"></div>
<div class="wifiInfoContent"></div>
【问题讨论】:
标签: javascript jquery css bootstrap-4