我想在页面上任何地方点击时隐藏一个元素,但不包括div,如果你在div上点击,则应切换类。
jQuery -
$('.onclick-dropdown-link').on('click', function(e) {
e.preventDefault();
var $this = $(this);
var id = $this.attr('href');
$('.onclick-dropdown').not(id).removeClass('open');
$(id).toggleClass('open');
});
HTML -
<a class="onclick-dropdown-link" href="#test-div"></a>
<div id="test-div" class="onclick-dropdown">
<p>Lorem Ipsum<p>
</div>
CSS -
.onclick-dropdown {
opacity: 0;
visibility: hidden;
z-index: 999;
}
.onclick-dropdown.open {
opacity: 1;
visibility: visible;
}
已经尝试了以下方法:
$(document).on('click', function() {
$('.onclick-dropdown').not(id).removeClass('open');
});
$(document).on('click', function() {
$('.open').not(id).removeClass('open');
});
$('.onclick-dropdown-link').on('click', function() {
e.stopPropagation(); // This is the preferred method.
return false; ;
});
$(document).on('click', function() {
$('.onclick-dropdown.open').removeClass('.open');
});
$('.onclick-dropdown.open').removeClass('.open');
由于前置了一个.
,所以不会移除 open 类。 - Steve0