jquery触发器hover在锚点上

我正在使用jQuery在Web环境中开发。

我想知道为什么

$("#a#trigger").trigger('mouseenter'); $("#a#trigger").trigger('hover'); $("#a#trigger").trigger('mouseover'); 

所有这3个都不能激活我拥有的hoverfunction。

 $(function() { $('a#trigger').hover(function(e) { $('div#pop-up').show(); }, function() { $('div#pop-up').hide(); }); }); }); 

a#trigger是锚点的名称, #pop-up是我网站中的div元素。

问题是我想将鼠标hover在FullCalendar插件中的某些事件上,而这些function无法正常工作。 谢谢。

你是在正确的轨道上,问题是选择器中的额外# ,只需删除第一个哈希:

 $("a#trigger").trigger('mouseenter'); 

请注意,由于ID必须是唯一的,因此无需指定元素类型, $('#trigger')更有效。

另请注意:

在jQuery 1.8中不推荐使用,在1.9中删除:名称"hover"用作字符串"mouseenter mouseleave"的简写。 它为这两个事件附加单个事件处理程序,并且处理程序必须检查event.type以确定事件是mouseenter还是mouseleave 。 不要将"hover"伪事件名称与.hover()方法.hover() ,后者接受一个或两个函数。

你的jQuery选择器应该写成例如

 $('a#trigger'); 

而不是$('#a#trigger');

在jQuery中,选择器中的#匹配id。 在这种情况下, trigger是一个id,但是a是一个HTML元素,不需要前缀。

你的最终代码是:

 $("a#trigger").trigger('mouseenter'); $("a#trigger").trigger('hover'); $("a#trigger").trigger('mouseover');