0

基本上,我有 2 个完全相同的列表。当我将鼠标悬停在其中一个列表上时,我希望两个列表中的项目都稍微不透明。

我用过很多次 JavaScript;然而,不是最近。在我比较熟悉 JavaScript 之前,我一直拒绝使用 JQuery。现在我想我会尝试重新制作我不久前制作的东西,但我不完全确定我做对了。

我有这段代码,它应该在 ul 中找到所有 li 元素,其中包含一类 navlist,其文本与鼠标悬停的文本匹配,并将其不透明度设置为 0.7。不幸的是,这不起作用。关于为什么的任何想法将不胜感激。

$(".NavList li:contains('" + $(lbutt).text() + "')").css("opacity:0.7;");

编辑:此代码在函数内。当鼠标悬停在链接上时,它会将“this”传递给 lbutt。

编辑#2:谷歌开发者控制台不会抛出任何错误。

编辑#3:答案:

$(".NavList li:contains('" + $(lbutt).text() + "')").css("opacity","0.7");
4

2 回答 2

2

我做了一个 jsfiddle,展示了如何在这里做类似的事情:http: //jsfiddle.net/AAvDN/

HTML:

<ul class="hoverme">
    <li>one</li>
    <li>two</li>
</ul>

<ul class="navlist">
    <li>one</li>
    <li>two</li>
</ul>

JavaScript:

$(".hoverme li").hover(function() {
    var what = $(this).text();
    $(".navlist li:contains('" + what + "')").css("color", "red");
}, function() {
    $(".navlist li").css("color", "black");
});

我看到的主要语法错误是您使用.css("opacity:0.7")而不是.css("opacity", "0.7").

于 2013-10-27T07:16:25.257 回答
1

我会这样做:

$('.YourClass li').hover(function(){
var txt = $(this).text(); // get the text of hovered element
$('NavList li').each(function(){ // loop through your li elements to check if text is the same
    if ($(this).text() == txt){
        $(this).css('opacity','0.7'); // set your CSS rules
    }
});
});
于 2013-10-27T07:05:54.123 回答