如何将jQuery悬停脚本应用于正在悬停的链接中的div类?

时间:2011-10-22 15:35:07

标签: jquery function hover this

我认为我的问题不尽如人意,但希望我能在这里说清楚。

我有以下悬停脚本:

$("nav a#index").hover(
    function() {
        $(".current").animate({
            opacity: 1
        }, {
            duration: 300,
            specialEasing: {
                opacity: 'linear',
            },

        });
    }, function() {
        $(".current").animate({
            opacity: 0
        }, {
            duration: 3000,
            specialEasing: {
                opacity: 'linear',
            },

        });
    });

我用它来淡化具有绝对定位的div中的图像:

<div id="nav1">
     <a href="index.html" class="fade nav top current" id="index">

     <div class="nav-image"><img src="images/bodhi-leaf-green.png"></div>

     <div id="current"><img src="images/bodhi-leaf-green.png"></div>
     <div class="text"><img src="images/home.png"></div>

     </a>
</div>

因为我需要对多个导航div进行悬停效果,例如nav2,nav3等,我需要为这些中的每一个悬停脚本,或者更确切地说,我希望找到一种方法来编写一个适用于我所有导航链接的脚本,所以这将从以下开始:

$("nav a").hover(

然后会有类似的东西:

function() {
            $(this ".current").animate({......

即。我正在寻找一种在特定的href链接中引用div类的方法,以便我可以淡化它。我希望这更清楚!

感谢您的帮助。

尼克

2 个答案:

答案 0 :(得分:0)

$(".current")更改为$(".current", this):修改后,只会更改链接中的.current元素。
修改选择器:div[id^=nav]将选择ID以“nav”开头的所有DIV元素

注意:将id="index"更改为class="index"

$("div[id^=nav] a.index").hover(
function() {
    $(".current", this).animate({
        opacity: 1
    }, {
        duration: 300,
        specialEasing: {
            opacity: 'linear',
        },

    });
}, function() {
    $(".current", this).animate({
        opacity: 0
    }, {
        duration: 3000,
        specialEasing: {
            opacity: 'linear',
        },

    });
});

答案 1 :(得分:0)

试试这个:

$("a#index").hover(
function() {
    $(this).parent().find(".current").animate({
        opacity: 1
    }, {
        duration: 300,
        specialEasing: {
            opacity: 'linear',
        },

    });
}, function() {
    $(this).parent().find(".current").animate({
        opacity: 0
    }, {
        duration: 3000,
        specialEasing: {
            opacity: 'linear',
        },

    });
});