javascript - fadeToggle 身体点击
问题描述
我有这个 divdisplay:none/block
通过单击 id显示/隐藏#cart
。div 通过单击带有 id 的元素打开和关闭,但我也想在 body click 上关闭 div。请问我该怎么做?
我正在使用的代码如下:
jQuery("#cart").on("click", function() {
jQuery(".shopping-cart").fadeToggle( "fast");
});
解决方案
您可以做的是向整个窗口添加一个侦听器并检查点击。当有点击时,我们检查哪个元素被点击并检查它是否是元素。我们也对父元素重复此操作。
<!DOCTYPE html>
<html>
<head>
<script>
function checkClickOutsiteElement(clickedElement, elementToCheck){
var iterator = clickedElement;
while(true){
// The click was in the element.
if( iterator === elementToCheck )
return;
// Go to the parent.
if( !iterator.parentElement ){
alert('outside menu');
return;
}
iterator = iterator.parentElement;
}
}
window.addEventListener('click', function(event){
checkClickOutsiteElement(event.target, document.getElementById('menu'));
});
</script>
</head>
<body>
<div class="wrapper">
<div id="menu" style="width: 100px; height: 100px; background-color: red;"></div>
</div>
<div class="wrapper">
<div id="not_menu" style="width: 100px; height: 100px; background-color: green;"></div>
</div>
</body>
</html>
推荐阅读
- python-3.x - 如何通过ip地址请求https?
- arrays - 需要帮助使用类显示随机数生成器选择并输出到文件
- swift - 当我在另一个类中声明一个类时有什么问题吗?
- python - 为什么我的 Python POST 请求会引导我进入初始网页?
- python - PyCharm-Project 可执行文件
- reactjs - 嵌套形式的反应和派生状态
- swift - 2 .onReceive() 功能与定时器不工作
- python - 基于模糊匹配查找和替换列表中的值
- python - 分类变量处理期间的数据泄漏?
- javascript - 由于某些奇怪的原因,Js 在控制台中输出错误的日期