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;
}
});
Есть ли способ сделать это или я должен сделать это сам?
Решение
Разделить логику внутри mouseout
в другую функцию. в mouseout
Даже назовите эту функцию setTimeout("myMouseOut", 500)
. Анкет И вы можете объединить mouseover
событие с clearTimeout()
Чтобы сбросить таймер, если пользователь перемещается в новый элемент.
Другие советы
Вы всегда можете обернуть свою логику в setTimeout()
функция
mouseout: function() {
setTimeout(function(){
$c('hide!');
hideUnderConstruction();
}, 500);
}
Вы можете проверить График плагина Позволяет определить некоторые VAR, которые помогают с взаимодействием мыши/вне