Как добавить задержку?
$( ".uk-menu-home" ).hover(
function() {
$( this ).addClass('uk-open');
},
function() {
$( this ).removeClass('uk-open');
}
);
Суть скрипта проста, при наведении на элемент добавляется класс. А как сделать так, что бы существовала задержка перед удаление класса, после того как мы уберем курсор от элемента? |
$( ".uk-menu-home" ).hover(
function() {
$( this ).addClass('uk-open');
},
function() {
setTimeout(function () {
$( this ).removeClass('uk-open');
}, 1000);
}
);
только по-хорошему надо ещё добавлять переменную-флаг, на случай многократного быстрого наведения/уведения курсора ссылок. |
Цитата:
|
блин. ну перенеси контекст))
$( ".uk-menu-home" ).hover(
function() {
$( this ).addClass('uk-open');
},
function() {
var that = this;
setTimeout(function () {
$( that ).removeClass('uk-open');
}, 1000);
}
);
|
Спасибо, а можно с флагами поподробней?
|
поводи быстро мышкой по ссылкам туда-сюда и посмотри что происходит.
сделай выводы, продумай алгоритм как сделать так, чтобы было нормально, а не как сейчас. останется самое простое - написать несколько строк кода. |
Так, вот у нас есть несколько элементов для проверки.
$( ".uk-menu-home" ).hover(
function() {
$( this ).addClass('uk-open').clearTimeout;
},
function() {
var that = this;
setTimeout(function () {
$( that ).removeClass('uk-open');
}, 1000);
}
);
$( ".uk-menu-forum" ).hover(
function() {
$( this ).addClass('uk-open').clearTimeout;
},
function() {
var that = this;
setTimeout(function () {
$( that ).removeClass('uk-open');
}, 1000);
}
);
$( ".uk-menu-load" ).hover(
function() {
$( this ).addClass('uk-open').clearTimeout;
},
function() {
var that = this;
setTimeout(function () {
$( that ).removeClass('uk-open');
}, 1000);
}
);
Т.е нужно задать условие или то, или то?Получается что-то типо этого
$( ".uk-menu-home").hover(
function() {
$( this ).addClass('uk-open').clearTimeout;
},
function() {
var that = this;
if($('.uk-menu-forum'||'.uk-menu-load').is(':hover') === true){$( that ).removeClass('uk-open')
} else {setTimeout(function () {
$( that ).removeClass('uk-open');
}, 1000);};
}
);
|
Ап. Прошу помочь с данным скриптом. Как его доработать, и возможно сократить?
|
| Часовой пояс GMT +3, время: 18:22. |