-1

我有以下设置来更改某个类中链接的颜色。由于某种原因,它不起作用。我确实需要为我正在做的事情保留这个结构。默认情况下,链接的颜色根据正在工作的 CSS 为白色。只是更改链接的 jQuery 不起作用。

var link_colour = "#CCC";

function linkcolor() {
$("[class='navLink']").css("color",link_colour);
}
window.onload = linkcolor;

<ul>
<li><a class="navLink" href="#"><img src="foo1.png" />xyz</a></li>
<li><a class="navLink" href="#"><img src="foo2.png" />abc</a></li>
</ul>
4

5 回答 5

5

如果你正在使用jQuery你永远不想使用window.onload = fn. 使用$(document).ready(fn)$(fn)简称。

$(linkcolor);

我猜这个代码在window.onload事件触发后运行,所以你的事件处理程序永远不会执行。 jQuery如果事件已经发生,将通过立即触发函数来处理这种情况,确保代码被执行。

看到它在这里工作


其他说$('.navLink')更好的答案也是正确的。但这只是您拥有的选择器的简写,应该可以正常工作。你应该改变它,但这不是问题。

于 2013-03-15T23:26:47.427 回答
1

采用:

$('.navLink')

这将正常工作以选择其类属性设置为的所有元素navLink

于 2013-03-15T23:28:57.630 回答
1

下面是你应该如何用 jQuery 友好的术语来表达它:

var link_colour = '#CCC';
$(document).ready(function() {
    $('.navlink').css('color', link_colour);
});
于 2013-03-15T23:29:40.203 回答
0

我会像这样使用选择器:

$(function(){
 var $color = '#CCC';
 $('.navLink').css('color',$color);
});
于 2013-03-15T23:28:56.403 回答
0

那里三分。

1) 使用 $(document).ready

您正在使用 window.reload,在这种情况下,使用 $(document).ready。

$(document).ready(function(){
// My code
});

2) 使用 .class

不要使用 [class=''],而是使用 .class。

$('.navLink')

这些是我的建议和对您问题的回答!

于 2013-03-15T23:36:30.530 回答