1

这对我来说很难解释,所以我会尽力而为。这是这段代码:

$('#navibar a').hover(function(){
    var position = $(this).position(); 
    var width = $(this).width();
    $('#underliner').css({'width': '' + width + '','left': position.left});
    //$('#underliner').show("slide", { direction: "left" }, 100);
    $('#underliner').stop().animate({opacity: 1}, 30).show();
}, function () {
    var homePos = $(this).find(attr(activePageHref)).position();
    var homeWidth = $(this).find(attr(activePageHref)).width();
    //$('#underliner').css({'width': '' + homeWidth + '','left': homePos.left});
    //$('#underliner').show("slide", { direction: "left" }, 100);
    //$('#underliner').stop().animate({opacity: 1}, 30).show();
    alert(activePageHref);
});

activePageHref 在此之外设置为已单击的页面。在警报中,它显示正确(例如,让我们说它的值是“home”。我需要以某种方式将#underliner.css 位置和宽度设置为悬停时选择的导航中的页面链接,所以有没有办法“找到”其他“a”并使用它们?希望在代码中我想要做的事情很明显。这是我的标记:

<ul id="navibar">
            <li><a href="home">Home</a></li>
            <li><a href="products">Products</a></li>
            <li><a href="games">Games</a></li>
            <li><a href="store">Store</a></li>
            <li><a href="support">Support</a></li>
            <li><a href="community">Community</a></li>
        </ul>

另外,我知道第一段代码是大错特错,这只是我在决定在这里发帖之前出于愤怒和绝望而做的最后一件事。

4

2 回答 2

2

使用属性选择器找到 href 为 activePageHref 的链接

$('#navibar a').hover(function(){
    var position = $(this).position(); 
    var width = $(this).width();
    $('#underliner').css({'width': '' + width + '','left': position.left});
    //$('#underliner').show("slide", { direction: "left" }, 100);
    $('#underliner').stop().animate({opacity: 1}, 30).show();
}, function () {
    var homePos = $(this).parents('#navibar').find('a[href="'+activePageHref+'"]').position();
    var homeWidth = $(this).parents('#navibar').find('a[href="'+activePageHref+'"]').width();
    //$('#underliner').css({'width': '' + homeWidth + '','left': homePos.left});
    //$('#underliner').show("slide", { direction: "left" }, 100);
    //$('#underliner').stop().animate({opacity: 1}, 30).show();
    alert(activePageHref);
});
于 2012-07-19T03:32:29.357 回答
2

首先,您可以通过类似的方式选择“a” event.target
其次,你添加activeClass到目标;
第三,通过选择器获取其他a,比如$("ul#navibar li a:not(.activeClass)") Here会得到一个数组中那些不活跃的a,可以通过$.each

愿它对你有所帮助。

于 2012-07-19T03:43:48.457 回答