2017-10-17 258 views
-2

隱藏元素點擊

$(document).on('click','body', function(e){ 
 
     if(e.target == $('.moreOptionsMenu')){ 
 
     return false; 
 
     }else{ 
 
     $('.moreOptionsMenu').remove(); 
 
     } 
 
}); 
 

 
$(document).on('click','.fa.fa-bars.moreOptions', function(e){ 
 
e.stopPropagation(); 
 
    $('body').append('<div class="moreOptionsMenu">something</div>'); 
 
});
.moreOptionsMenu{ 
 
    width: 50px; 
 
    height: 50px; 
 
    background: red; 
 
} 
 
.moreOptions{ 
 
    width: 50px; 
 
    height: 50px; 
 
    background: blue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="fa fa-bars moreOptions"></div>

我有一些問題,在身體上點擊刪除一些元素,但其中目標不是上或其他一些因素:

$(document).on('click','body', function(e){ 
     if(e.target !== $('.moreOptionsMenu') && e.target !== $('.fa.fa-bars.moreOptions')){ 
     $('.moreOptionsMenu').remove(); 
     } 
}); 

$(document).on('click','.fa.fa-bars.moreOptions', function(e){ 
    $('body').append('<div class="moreOptionsMenu">something</div>'); 
}); 

當我點擊.fa.fa-bars.moreOptions我追加.moreOptionsMenu,我想刪除.moreOptionsMenu當我點擊任何地方,但它或.fa.fa-bars.moreOptions

隨着上面的代碼,它是每次刪除它。

+0

請添加相關的HTML和CSS,所以我們可以重新創建你的場景。 –

+0

請按照要求和適當的例子正確地制定你的問題 – zubair1024

回答

2

您是否嘗試過使用e.stopPropagation()從冒泡中停止事件。例如:

$(document).on('click','.fa.fa-bars.moreOptions', function(e){ 
    e.stopPropagation(); 
    $('body').append('<div class="moreOptionsMenu">something</div>'); 
}); 
+0

這是行得通的,如果我知道它,我會試試看:/謝謝 –

+1

你能投票答案,所以問題顯示爲答案? – stevelacerda7

+0

它適用於一部分,但它不適用於另一部分,當我點擊n附加div它關閉,我不需要,但對於一半的權利,我會接受它 –