这就是我所拥有的:
$('#mini-panel-quick_menu .panel-col-last').mouseout(function(){
$('#edit-search-block-form--2').blur(function(){
$('#mini-panel-quick_menu .panel-col-last').removeClass('on');
$('#mini-panel-quick_menu .panel-col-last').addClass('off');
$( '#block-search-form' ).removeClass( "open" );
});
})
我希望模糊功能发生,但前提是你的鼠标不在“.panel-col-last”元素中。
答案 0 :(得分:4)
首先,您可能需要mouseleave
而不是mouseout
。
mouseout
也会触发,其中mouseleave
仅在光标完全位于元素之外时才会触发。
您应该设置一个标记来跟踪鼠标是否在您的元素内部,并检查是否来自blur
处理程序:
var mouseIsIn;
$('#mini-panel-quick_menu .panel-col-last').hover(function() {
mouseIsIn = true;
}, function() {
mouseIsIn = false;
});
$('#edit-search-block-form--2').blur(function(){
if (!mouseIsIn) {
$('#mini-panel-quick_menu .panel-col-last').removeClass('on');
$('#mini-panel-quick_menu .panel-col-last').addClass('off');
$( '#block-search-form' ).removeClass( "open" );
}
});