我正在使用jQuery在Web环境中开发。
我想知道原因
$("#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插件中的某些事件上,而这些功能无效。 谢谢。
答案 0 :(得分:66)
你走在正确的轨道上,问题是选择器中的额外#
,只需删除第一个哈希:
$("a#trigger").trigger('mouseenter');
请注意,由于ID必须是唯一的,因此无需指定元素类型,$('#trigger')
更有效。
另请注意:
在jQuery 1.8中不推荐使用,在1.9中删除:名称
"hover"
用作字符串"mouseenter mouseleave"
的简写。它为这两个事件附加了一个事件处理程序,处理程序必须检查event.type
以确定事件是mouseenter
还是mouseleave
。不要将"hover"
伪事件名称与.hover()
方法混淆,后者接受一个或两个函数。
答案 1 :(得分:9)
你的jQuery选择器应该写成例如。
$('a#trigger');
而不是$('#a#trigger');
在jQuery中,选择器中的#匹配id。在这种情况下,trigger
是一个ID,但a
是一个HTML元素,不需要前缀。
您的最终代码是:
$("a#trigger").trigger('mouseenter');
$("a#trigger").trigger('hover');
$("a#trigger").trigger('mouseover');