簡體   English   中英

切換關閉外部點擊

[英]Toggle close outside click

我正在為dd & dt使用切換類,它工作正常,但是我的問題是,如果用戶單擊外面,我想關閉該切換。 如何做到這一點?

 <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.js"></script>
    <script type="text/javascript">
    jQuery=$.noConflict();
    jQuery(document).ready(function() {
        jQuery('.navigation dd').hide(); 

        jQuery('.navigation dt').click(function(){ 
                jQuery(this).next('dd').slideToggle('slow');
                jQuery(this).toggleClass('glace_navigationlayer-collapsed'); 


            });


     }); 
    </script>

您也可以嘗試-DBS擁有的是正確的 ,(他發表在評論中),恕我直言。

//clicking on the body, closes the toggleitem
jQuery(document.body).bind('click.closedd', function() {
    jQuery('.navigation dd').hide();
});

// clicking on the toggle item, won't trigger the click on the body
// that we set up above.
jQuery('.navigation dd').bind('click.closedd', function(e) {
    e.stopPropagation();
});

您需要偵聽<body>上的點擊,然后檢查以確保目標不在導航組件之外。

jQuery('body').on('click', function(evt) {
  var $target = $(evt.target);
  if ( !$target.closest('.navigation').length ) {
    // code to collpase the nav menu
  }
});

我還建議重構您的導航代碼,以使用單獨的展開和折疊功能,而不是依賴slideToggletoggleClass

祝好運!

對於要求不是很確定,但是您可以嘗試在mouseenter和mouseleave事件上實現以上要求。
但是,如果必須僅在單擊時實現上述功能,則必須將click事件連接到覆蓋整個html主體的容器上。

暫無
暫無

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

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