jquery触发器悬停在锚点上

时间:2012-06-17 21:12:15

标签: jquery triggers hover mouseover

我正在使用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插件中的某些事件上,而这些功能无效。 谢谢。

2 个答案:

答案 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');