jQuery - حدث تأخير mouseout
-
20-09-2019 - |
سؤال
هل هناك طريقة لجعل jQuery تنتظر بعض الوقت قبل إطلاق حدث Mouseout؟
إنه يتم إطلاق النار في وقت مبكر جدًا في الوقت الحالي ، وأفضل الانتظار 500 مللي ثانية قبل أن يقيم الماوس. مثال على الرمز الذي أستخدمه أدناه.
$('.under-construction',this).bind({
mousemove: function(e) {
setToolTipPosition(this,e);
css({'cursor' : 'crosshair' });
},
mouseover: function() {
$c('show!');
showUnderConstruction();
},
mouseout: function() {
$c('hide!');
hideUnderConstruction();
},
click: function() {
return false;
}
});
هل هناك طريقة jQuery للقيام بذلك أم سأضطر إلى القيام بذلك بنفسي؟
المحلول
تقسيم المنطق داخل mouseout
في وظيفة أخرى. في ال mouseout
حتى استدعاء هذه الوظيفة مع أ setTimeout("myMouseOut", 500)
. ويمكنك الجمع بين mouseover
حدث مع clearTimeout()
لإعادة ضبط المؤقت إذا انتقل المستخدم إلى عنصر جديد.
نصائح أخرى
يمكنك دائمًا لف منطقك في setTimeout()
وظيفة.
mouseout: function() {
setTimeout(function(){
$c('hide!');
hideUnderConstruction();
}, 500);
}
يمكنك التحقق من المكون الإضافي hovernintent يتيح لك تحديد بعض الأسكواشات التي تساعد في التفاعلات/الخروج
لا تنتمي إلى StackOverflow