我有这个html:
<div class="trigger">
My button
</div>
<div class="panel">
<span class="close-btn"></span>
My panel
</div>
和这个jQuery:
$(".trigger").click(function() {
$('.panel').fadeIn("fast");
$(this).toggleClass('isOpen');
});
$(".close-btn").click(function() {
$('.panel').fadeToggle("fast");
$('.trigger').removeClass('isOpen');
});
$('.panel').hover(function() {
mouse_is_inside = true;
}, function() {
mouse_is_inside = false;
});
$("body").mouseup(function() {
if (!mouse_is_inside) $('.panel').fadeOut("fast");
$('.trigger').removeClass('isOpen');
});
if ($(".trigger").hasClass('isOpen')) {
$('.panel').fadeOut("fast");
}
我想做的是:
- 打开面板,然后,
- 通过单击页面中的任意位置但在面板本身中关闭它,
- 在面板内的关闭按钮上,
- 在打开它的 div 上。
但我无法让它工作,因为当面板打开时,div“触发器”会因为允许我单击页面中任意位置的功能而感到困惑并不断打开和关闭面板。
感谢帮助