29

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

我想知道为什么

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

所有这三个都无法激活我拥有的悬停功能。

$(function() {


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

             }, function() {
          $('div#pop-up').hide();
        });

     });

      });

a#trigger是锚的名称,并且#pop-up是我的 web 中的一个 div 元素。

问题是我想将鼠标悬停在 FullCalendar 插件中的某些事件上,而这些功能不起作用。谢谢。

4

2 回答 2

82

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

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

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

另请注意:

在 jQuery 1.8 中已弃用,在 1.9 中删除:"hover"用作 string 简写的名称"mouseenter mouseleave"。它为这两个事件附加了一个事件处理程序,处理程序必须检查event.type以确定事件是mouseenter还是mouseleave。不要将"hover"伪事件名称与.hover()接受一两个函数的方法混淆。

于 2012-06-17T21:15:12.290 回答
9

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

$('a#trigger');

代替$('#a#trigger');

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

您的最终代码将是:

$("a#trigger").trigger('mouseenter');
$("a#trigger").trigger('hover');
$("a#trigger").trigger('mouseover');
于 2012-06-17T21:14:49.417 回答