Проблема с событием JQuery MouseOut

Я пытаюсь создать панель панели в jquery, все завершено, за исключением одной проблемы. Когда я наводил ссылку на ссылку, она показывает черную панель, я хочу, чтобы ее можно было скрыть, только когда мышь вышла из этой области черной панели. В настоящее время он исчезает, даже если я внутри этого черного ящика.

Вот script вы можете просмотреть предварительный просмотр, щелкнув ссылку Предварительный просмотр и отредактировав его там:

http://jsbin.com/adofe/edit

Он должен быть очень простым для опытных кодеров JQuery, я не играл с этим так много, поэтому не мог понять.

Спасибо

1
задан Sarfraz 05 марта '10 в 16:54
источник поделиться
3 ответов

При поставке только одного параметра для зависания он использует его для ввода мыши и ухода мыши.

Вы должны использовать зависание вместо события mouseout.

При первом вызове наведите указатель на пустой параметр в качестве второго параметра.

При повторном вызове наведите указатель на пустую функцию как первый параметр.

Это предотвращает вызов нескольких вызовов одной и той же функции.

Я бы сказал, чтобы использовать события mouseenter и mouseleave для предотвращения дополнительных параметров, но по какой-то причине jsbin не считает, что это функция.

http://jsbin.com/adofe/6/edit

2
ответ дан bmac 05 марта '10 в 19:03
источник поделиться

Во-первых, почему бы просто не поместить эти два в CSS в качестве "начальной точки"?

 $('div[id*="panel"]').hide();

  // make the panels absolute positioned
  $('div[id*="panel"]').css('position', 'absolute');

Во-вторых, если вы просто переместите указатель мыши на материал повторно, вы получите:

Переполнение стека по строке 25

Сведения об ошибках веб-страницы

Пользовательский агент: Mozilla/4.0 (совместимый; MSIE 7.0; Windows NT 5.1; Trident/4.0;.NET CLR 1.1.4322;.NET CLR 2.0.50727;.NET CLR 3.0.04506.30; MDDR;.NET CLR 3.0.4506.2152;.NET CLR 3.5.30729; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0) Сроки: пт, 5 мар 2010 14:21:26 UTC

Сообщение: "guid" является нулевым или не является объектом Линия: 25 Char: 10976 Код: 0 URI: http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js

Сообщение: 'undefined' является нулевым или не является объектом Линия: 21 Char: 560 Код: 0 URI: http://jsbin.com/js/render/edit.js

Сообщение: 'undefined' является нулевым или не является объектом Линия: 21 Char: 560 Код: 0 URI: http://jsbin.com/js/render/edit.js

Сообщение: 'undefined' является нулевым или не является объектом Линия: 21 Char: 560 Код: 0 URI: http://jsbin.com/js/render/edit.js

В-третьих, у вас

var link_rel = null;

а затем в коде выделите новую переменную с тем же именем:

var link_rel = $(this).attr('rel');

см. также

var pos = $(this).offset();

который перераспределяется каждый раз при наведении.

Это, наряду с вложением элементов (и расположением панели по ссылке), похоже, приводит к проблемам с управлением событиями .hover.

1
ответ дан Mark Schultheiss 05 марта '10 в 17:27
источник поделиться

вам нужно переместить div # panel_1, # panel_2, # panel_3 внутри ul # menu li и когда вы закончите div, вы все еще над ли, если вы примените hover к li, а не a. Другой способ - сохранить видимость блока и управлять им.

0
ответ дан Daniele Cruciani 05 марта '10 в 17:07
источник поделиться

Другие вопросы по меткам или Задайте вопрос