基本上,我有两个完全相同的列表。当我将鼠标悬停在其中一个列表上时,我希望两个列表中的项目都略微不透明。
我多次使用过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");
答案 0 :(得分: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")
。
答案 1 :(得分: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
}
});
});