jquery trigger hover on anchor

2019-01-19 10:12发布

问题:

I'm using jQuery to develop in web environment.

I want to know why

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

All 3 of those aren't working to activate a hover function that I have.

$(function() {


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

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

     });

      });

a#trigger is the name of the anchor, and #pop-up is a div element in my web.

The problem is that I want to mouse over some event in FullCalendar plugin and those functions aren't working. Thanks.

回答1:

You are on the right track, the problem is the extra # in the selector, just remove the first hash:

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

Note that since IDs must be unique, there is no need to specify the element type, $('#trigger') is more efficient.

Also note that:

Deprecated in jQuery 1.8, removed in 1.9: The name "hover" used as a shorthand for the string "mouseenter mouseleave". It attaches a single event handler for those two events, and the handler must examine event.type to determine whether the event is mouseenter or mouseleave. Do not confuse the "hover" pseudo-event-name with the .hover() method, which accepts one or two functions.



回答2:

Your jQuery selector should be written as e.g.

$('a#trigger');

instead of $('#a#trigger');

In jQuery a # in a selector matches an id. In this case trigger is an id, but a is an HTML element and requires no prefix.

Your final code would be:

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