簡體   English   中英

JavaScript中的事件

[英]Events in javascript

我想單擊“修改”打開一個表單。 當我在表格外單擊時,我也希望表格消失。 當我為此使用mouseleave事件時,表單會自動打開和關閉,而我無法填寫表單。 我沒有在這里使用哪個事件。

JS

$(document).ready(function() {
    $("#div1").load("compare-form-site.html");
});

$( ".m-search" ).click(function() {
    $( "#modify" ).show( "blind",700 );
    $( "#bank" ).hide();
    $( ".slider" ).hide();
    $( "#type" ).hide();
    $( "#sort" ).hide();
});

$(".m-search").mouseleave(function(){
    $('#modify').hide( );
});

HTML

<ul>
    <li class="m-search">
         Modify Search 
         <i class="fa fa-search-plus" aria-hidden="true">
         </i>
         <div id="modify" class="modify">
             <div id="div1">
             </div> 
         </div>
    </li>
  </ul>

您可以將其與目標元素進行比較,並檢查是否在表單外部或表單中單擊。 如果在外面,則隱藏表格。

$(document).on('click', function(e){
var $target = $('.modify');
if($target.is($(e.target)) && !$trigger.has(e.target).length) {

  $('.modify').hide();
}

})

工作的小提琴會更好地為所有人提供幫助。

這是一個應該為您提供幫助的工作示例:

 // open the form $('.modify').on('click', function(e) { $(this).parent().find('.dialog').fadeIn(); }); // close the form (button inside form) $('.close').on('click', function(e) { $(this).parents('.dialog').fadeOut(); }); // hide the form if you click outside the form $(document).mouseup(function (e) { var container = $(".dialog"); if (!container.is(e.target) && container.has(e.target).length === 0) { container.hide(); } }); 
 ul li button { display: block; } .dialog { display: none; position: absolute; top: 10%; bottom: 10%; left: 10%; right: 10%; background: blue; } .dialog .close { float: right; color: white; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li> Modifiy Search <button class="modify">Test</button> <div class="dialog"> <span class="close">Close me</span> Im a test dialog </div> </li> </ul> 

mouseleave不會對單擊做出反應,而是對當前指針位置做出反應。 您必須將click(鼠標按下)監聽器添加到例如文檔中,以監聽外部的click事件

暫無
暫無

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

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