簡體   English   中英

在外部單擊時如何關閉元素?

[英]how to close an element when click outside?

當我單擊按鈕時,按鈕會切換特定的類並打開某些內容,這可以工作,但是當我嘗試鍵入將在該對象之外單擊該對象時將其關閉的代碼時,該問題不起作用

 $(function() { $('button').on('click', function() { $('.list').toggle(); $('button').toggleClass('something'); }); $(document).on('click', function(e) { if (e.target !== 'list, button') { $('.list').hide(); } }); }); 
 .list { width: 100px; height: 150px; background: lightgray; display: none; } button { background: green } .something { background: red; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class='list'></div> <button>button</button> 

那是因為您有一個display: none CSS聲明display: none 您可能還想向.list添加一些內容(以便可以將其隱藏),如以下示例所示:

 $(function() { $(document).on('click', function(e) { if (e.target !== 'list, button') { $('.list').hide(); } }); }); 
 .list { width: 100px; height: 150px; background: lightgray; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class='list'>List</div> 

希望這可以幫助! :)

試試這個代碼,在這里您將打開列表並在其上移動,但是當您在按鈕和列表之外單擊時,該列表將被隱藏:

 var change ="y"; $('button').on('click', function() { if(change == "y") { $(".list").show(); }}); $('button').on('blur', function() { if(change == "x") { $(".list").hide(); change="y";}}); $('.list').on('mouseover', function() { change="y";}); $('.list').on('mouseout', function() {change="x"; $('button').focus();}); 
 .list { width: 100px; height: 150px; background: lightgray; display: none; } button { background: green } .something { background: red; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <div class='list'></div> <button>button</button> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM