我想爲表單創建一個簡單的腳本。該腳本將顯示用戶懸停在容器div上的表單。然後,我想檢查用戶是否單擊任何表單輸入,如果不是表單將隱藏。如果輸入或textarea焦點我解綁定mouseleave。如果用戶想在此時關閉表單,他需要點擊關閉按鈕。mouseleave /輸入綁定/解除綁定邏輯
我現在的問題是,我有一個焦點輸入後,我關閉窗體,在下一個懸停窗體不隱藏。我必須再次點擊關閉按鈕。當用戶點擊關閉時,如何「重置」或禁用鼠標離開取消綁定?
這是腳本的相關部分:
$(".close").on('click', function() {
$(".background").removeClass("green");
$(".q-form").hide();
$('.close').hide();
});
$(".container-background").on('mouseenter', function(){
$('.q-form').show();
$('.close').show();
$('.background').addClass("green");
});
$(".container-background").on('mouseleave', function() {
f ($('#contactForm input').is(':focus')) {
$(".container-background").off("mouseleave");
} else {
$('.q-form').hide();
$('.close').hide();
$('.background').removeClass("green");
}
});
不需要解除綁定鼠標離開。只要輸入具有焦點,就不要在mouseleave上做任何事情。基本上...在mouseleave上,如果窗體不在焦點關閉窗體。 –
那麼,這是一個快速解決,謝謝! :) –