$(function() {
$('#tag-btn1').click(function() {
$('#second-tag-div1').addClass('second-tag-div-active');
$('.sidebar').addClass('z-index100');
$('#secondary-content1').addClass('display-block');
});
});
$(document).mouseup(function(e){
var _con = $(' #second-tag-div1 '); // 设置目标区域
if(!_con.is(e.target) && _con.has(e.target).length === 0){
$('.secondary-tag-container').removeClass('second-tag-div-active');
$('.sidebar').removeClass('z-index100');
$('.secondary-content').removeClass('display-block');
};
});
这是一个点击空白关闭弹窗的效果,但是,点击#tag-btn1
不能关闭,后面我把.addClass
更换为.toggleClass
还是不能达到再次点击按钮关闭效果,toggle无效,也没有报错
<div class="sidebar">
<!-- 一级标签 -->
<ul class="tag radius-8">
<li id="tag-btn1" class="primary-tag"></li>
<li id="tag-btn2" class="primary-tag"></li>
<li id="tag-btn3" class="primary-tag"></li>
<li id="tag-btn4" class="primary-tag"></li>
<li id="tag-btn5" class="primary-tag"></li>
<!-- 一级标签对应弹出层 -->
<div class="secondary-tag-container radius-8" id="second-tag-div1">
<!-- 弹出层内容区域 -->
<div class="secondary-content radius-8" id="secondary-content1"></div>
</div>
<!-- 一级标签对应弹出层 -->
<div class="secondary-tag-container radius-8" id="second-tag-div2">
<!-- 弹出层内容区域 -->
<div class="secondary-content radius-8" id="secondary-content2"></div>
</div>
<!-- 一级标签对应弹出层 -->
<div class="secondary-tag-container radius-8" id="second-tag-div3">
<!-- 弹出层内容区域 -->
<div class="secondary-content radius-8" id="secondary-content3"></div>
</div>
</div>
$(document).mouseup(function(e){})和$('#tag-btn1').click(function() {})两个事件 在冒泡上有交集的 ,所以你可能要阻止一下,
$('#tag-btn1').click(function() {
$('#second-tag-div1').addClass('second-tag-div-active');
$('.sidebar').addClass('z-index100');
$('#secondary-content1').addClass('display-block');
return false
});