powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Открытие меню с задердкой
13 сообщений из 13, страница 1 из 1
Открытие меню с задердкой
    #37888998
m0p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m0p
Гость
Добрый день. Нужно чтобы при наведение на ссылку, меню открылось спустя 2 секунды. Проблема в том, что нужно проверить, спустя 2 секунды до сих пор ли курсор находится на этой ссылке. И фукнция mouseenter во второй раз не срабатывает когда курсор находится уже над элементом. Вобщем даже и не знаю в какую сторону копать, жду вашей помоши. заранее спасибо.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var id_menu = '';
var first_open = '';
$(".hover_link").mouseenter(function(e){
    id_menu = '#'+$(this).attr('id');
    setTimeout(function() {
        $(".hover_link").mouseenter(function(){
            $(id_menu+'.hover_menu').css('visibility','visible');
            classel = $(id_menu+'.hover_menu div.photo:first').attr('id');
        });
    },2000);
    console.log('wtf');
}).mouseout(function(){
    closeMenu(id_menu);
});
...
Рейтинг: 0 / 0
Открытие меню с задердкой
    #37889021
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты попробуй через 2 секунды не проверять - остался ли курсор, а повесить хандлер на убирание курсора - если убрали, удалить таймаут.
...
Рейтинг: 0 / 0
Открытие меню с задердкой
    #37889170
m0p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m0p
Гость
Последние 3 строки за это и отвечают. Если пользователь навел мышь на элемент, начался отчет двух секунд и дальше идет выполнение кода. Если в течении этих двух секунд пользователь выведет мышь, то скрипт никак не отреагирует, как будто действия и небыло вовсе, и меню будет выведено. Грубо говоря, нужно как то определить, находится ли указатель на элементе. Но как??! Вот в чем вся сложность
...
Рейтинг: 0 / 0
Открытие меню с задердкой
    #37889275
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему ты использовал событие mouseout, а не, скажем, dblclick или focus? Если берешь "противоположное" событие, то это будет mouseleave, а не mouseout.
...
Рейтинг: 0 / 0
Открытие меню с задердкой
    #37890063
m0p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m0p
Гость
Потому что при клике пользователь должен уходить на другую страницу, это сделано для планшетных устройств. А при наведении должно появится то самое меню, которое поможет миновать страницу для планшетников. Дак как же отследить где находится курсор мыши спустя 2 секунды?
...
Рейтинг: 0 / 0
Открытие меню с задердкой
    #37890211
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m0pДак как же отследить где находится курсор мыши спустя 2 секунды?
Как вариант используя setTimeout()...
...
Рейтинг: 0 / 0
Открытие меню с задердкой
    #37890292
m0p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m0p
Гость
В первом сообщении есть кусок кода, в нем используется эта функция, но я немогу повторно узнать, находится ли мышь над элементом или уже нет...
...
Рейтинг: 0 / 0
Открытие меню с задердкой
    #37890311
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m0pно я немогу повторно узнать, находится ли мышь над элементом или уже нет...
Как вариант, запоминай данные о местоположении перед вызовом и сверяй с тем, что есть, потом внутри вызова...
...
Рейтинг: 0 / 0
Открытие меню с задердкой
    #37890347
m0p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m0p
Гость
я не могу узнать местоположение, так как в функцию settimeout нужно передать объект, для того чтобы узнать значения координат. Объект то я вроде передаю, но результат не возвращает...
...
Рейтинг: 0 / 0
Открытие меню с задердкой
    #37890555
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m0pДобрый день. Нужно чтобы при наведение на ссылку, меню открылось спустя 2 секунды. Проблема в том, что нужно проверить, спустя 2 секунды до сих пор ли курсор находится на этой ссылке. И фукнция mouseenter во второй раз не срабатывает когда курсор находится уже над элементом. Вобщем даже и не знаю в какую сторону копать, жду вашей помоши. заранее спасибо.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var id_menu = '';
var first_open = '';
$(".hover_link").mouseenter(function(e){
    id_menu = '#'+$(this).attr('id');
    setTimeout(function() {
        $(".hover_link").mouseenter(function(){
            $(id_menu+'.hover_menu').css('visibility','visible');
            classel = $(id_menu+'.hover_menu div.photo:first').attr('id');
        });
    },2000);
    console.log('wtf');
}).mouseout(function(){
    closeMenu(id_menu);
});



чёто не понял проблемы... а так не получится? (вариант уже предлагался) :
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
var id_menu = '';
var first_open = '';
$(".hover_link").mouseenter(function(e){
    id_menu = '#'+$(this).attr('id');
    this.timer = setTimeout(function() {
        $(".hover_link").mouseenter(function(){
            $(id_menu+'.hover_menu').css('visibility','visible');
            classel = $(id_menu+'.hover_menu div.photo:first').attr('id');
        });
    },2000);
    console.log('wtf');
}).mouseout(function(){
    clearTimeout(this.timer);
    closeMenu(id_menu);
});



ну или типа того... просто сильно не вникал что для чего делается...
...
Рейтинг: 0 / 0
Открытие меню с задердкой
    #37890576
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрпросто сильно не вникал что для чего делается...

О_о... Вот теперь вникнул (немного)... закомментировал строки, которые не нужны
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
var id_menu = '';
var first_open = '';
$(".hover_link").mouseenter(function(e){
    id_menu = '#'+$(this).attr('id');
    this.timer = setTimeout(function() {
        //$(".hover_link").mouseenter(function(){ //mouseenter переопределять не надо
            $(id_menu+'.hover_menu').css('visibility','visible');
            classel = $(id_menu+'.hover_menu div.photo:first').attr('id');
        //});
    },2000);
    console.log('wtf');
}).mouseout(function(){
    clearTimeout(this.timer);
    closeMenu(id_menu); // тут непонятно что делается... тоже может быть лишнее внутри
});
...
Рейтинг: 0 / 0
Открытие меню с задердкой
    #37892405
m0p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m0p
Гость
При таком решении появился баг: если навести мышь на соседний пункт меню, он открывается с задержкой.
...
Рейтинг: 0 / 0
Открытие меню с задердкой
    #37892421
m0p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m0p
Гость
Все, спасибо. Сам допилил. Еще раз спасибо за помошь!
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Открытие меню с задердкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]