Это должно быть просто... не знаю, почему это дает мне неприятности, как это. У меня есть простая функция мыши. Работает отлично. Я бы хотел, чтобы функция запускалась только после зависания в течение 2,5 секунд.
Моя рабочая функция - это...
$('.profileimage').mouseenter(function(e) {
$(this).parent().parent().find('.profileInfo').css({'top': (e.pageY + 25),'left': (e.pageX + 25)}).fadeIn('slow');
});
Достаточно просто... все, что он делает, исчезает в элементе div
я сейчас скрывал.
Теперь, чтобы добавить задержку, я завернул это в setTimeout(function()
, потому что после прочтения некоторых других сообщений здесь это похоже на правильное решение. Так что теперь у меня есть это...
$('.profileimage').mouseenter(function(e) {
setTimeout(function() {
$(this).parent().parent().find('.profileInfo').css({'top': (e.pageY + 25),'left': (e.pageX + 25)}).fadeIn('slow');
}, 2500);
});
По-видимому, я не использую функцию setTimeout правильно, или я предполагаю, что это будет работать.
Рабочая демонстрация: http://jsbin.com/AqiFEQI/1/edit
Сломанная демонстрация: http://jsbin.com/AqiFEQI/2/edit
Если вы попробуете рабочий код, вы увидите, что уродливый div всплывает при наведении курсора на Чарльза. В сломанной выборке ничего не происходит.
Любая помощь будет принята с благодарностью...
это будет равно окну, когда вызывается таймаут-обратный вызов. Изменить на
$('.profileimage').mouseenter(function(e) {
var elem = this;
setTimeout(function() {
$(elem).parent().....;
}, 2500);
});
Обновлен JSBin: http://jsbin.com/AqiFEQI/4/edit
this
не объект , я думаю , что это ... должно уделять больше внимания.