Jquery trigger hover на якоре
Я использую jQuery для разработки в веб-среде.
Я хочу знать, почему
$("#a#trigger").trigger('mouseenter');
$("#a#trigger").trigger('hover');
$("#a#trigger").trigger('mouseover');
Все 3 из них не работают, чтобы активировать функцию зависания, которая у меня есть.
$(function() {
$('a#trigger').hover(function(e) {
$('div#pop-up').show();
}, function() {
$('div#pop-up').hide();
});
});
});
a#trigger
- это имя якоря, а #pop-up
- элемент div в моей сети.
Проблема в том, что я хочу навести курсор мыши на какое-то событие в плагине FullCalendar, и эти функции не работают.
Благодарю.
Ответы
Ответ 1
Вы на правильном пути, проблема в дополнительном #
в селекторе, просто удалите первый хеш:
$("a#trigger").trigger('mouseenter');
Обратите внимание, что поскольку идентификаторы должны быть уникальными, нет необходимости указывать тип элемента, $('#trigger')
более эффективен.
Также обратите внимание:
Устаревший в jQuery 1.8, удаленный в версии 1.9:. Имя "hover"
используется как сокращенная строка для строки "mouseenter mouseleave"
. Он прикрепляет один обработчик событий для этих двух событий, и обработчик должен исследовать event.type
, чтобы определить, является ли событие mouseenter
или mouseleave
. Не путайте псевдо-событие-имя "hover"
с помощью метода .hover()
, который принимает одну или две функции.
Ответ 2
Ваш селектор jQuery должен быть записан, например,
$('a#trigger');
вместо $('#a#trigger');
В jQuery a # в селекторе соответствует id. В этом случае trigger
является id, но a
является элементом HTML и не требует префикса.
Ваш последний код:
$("a#trigger").trigger('mouseenter');
$("a#trigger").trigger('hover');
$("a#trigger").trigger('mouseover');