تتلاشى من قائمة مسج بعد تأخير
-
12-09-2019 - |
سؤال
أنا أعمل على قائمة منسدلة مسج تتلاشى عند تحريك العناصر ذات المستوى الأعلى. أريد تعيينه بحيث نقل الماوس بعيدا، لا تختفي القائمة على الفور. لدي هذا الرمز:
$(document).ready(function(){
$('ul#menu > li').hover(
// mouseover
function(){
$(this).find('>ul').fadeIn('fast');
},
// mouseout
function(){
setTimeout( function(){
alert('fadeout');
$(this).find('>ul').fadeOut('fast')
}, 1000 );
}
);
});
بعد انتهاء التنبيه الثاني، ولكن القائمة لا تلاشى.
المحلول
window.settimeout ()، لذلك يشير هذا إلى كائن النافذة.
// mouseout
function(){
var el=this;
setTimeout( function(){
alert('fadeout');
$(el).find('>ul').fadeOut('fast')
}, 1000 );
}
نصائح أخرى
القي نظرة على هادئ. وبعد سوف تعطيك سيطرة أكبر على سلوك mouseover
/mouseout
الأحداث حسب التكوين:
var config = {
sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)
interval: 200, // number = milliseconds for onMouseOver polling interval
timeout: 500, // number = milliseconds delay before onMouseOut
};
$(document).ready(function(){
$('ul#menu > li').hoverIntent(
// mouseover
function(){
$(this).find('>ul').fadeIn('fast');
},
// mouseout
function(){
$(this).find('>ul').fadeOut('fast');
}
);
});
لا تنتمي إلى StackOverflow