jQuery:自动触发悬停效果

5

我有一个鼠标悬停和移出的设置,用于列表项如下:

$("#main-nav li a").hover(function() {
                $el = $(this);
                leftPos = $el.position().left;
                newWidth = $el.parent().width();
                $magicNav.stop().animate({
                    left: leftPos,
                    width: newWidth
                });
            }, function() {
                t1 = $(".current-menu-item a").position().left;
                t2 = $(".current-menu-item a").parent().width();
                $magicNav.stop().animate({
                    left: t1,
                    width: t2
                });    
            });

我希望能在有人进入网站或页面加载时自动触发“.current-menu-item a”上的悬停效果。
目前,我使用$(".current-menu-item a").trigger('hover');,但它不起作用。
请帮忙?
4个回答

9

使用这个

$(document).ready(function(){
    $(".current-menu-item a").mouseover();
});

或者

$(window).load(function(){
    $(".current-menu-item a").mouseover();
});

1
谢谢Uttara,第一个方法不行,但我尝试了$(window).load(function(){ $(".current-menu-item a").mouseover(); }); 它起作用了。 - Prem Paryani

2
$(".current-menu-item a").trigger('mouseenter');

悬停并不是一个真正的事件(它是由jQuery制造出来的虚构事件,由mouseentermouseleave组成)。无论如何,悬停是一个两个阶段的过程,所以不能逻辑上触发。


0
$('selector').trigger('eventName');

0

你需要使用mouseover而不是hover,像这样:

$(".current-menu-item a").trigger('mouseover');


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接