答案如下
我刚刚开始进入JQuery,但如果我只是慢慢理解或愚蠢,我就不会... 假设我想创建一个所有li对象的函数...当你执行鼠标悬停时,它获取相应li元素的类名,并在其中声明一个变量以保留该名称,我的问题是......如何使用.css方法编辑它并进行简单的图像交换(通过类找到的图像)
$("li")
.mouseover(function() {
var $myClass = $(this).attr("class");
var src = $($myClass).find('img').attr("src").match(/[^\.]+/) + "_over.png";
$("img"+ myClass).attr("src", src);
$($myClass).css("background-color", "#fff");
})
我不知道为什么它不起作用,我猜它是因为我的变量只显示名称而不是用jquery编辑它的实际名称,我的意思是我不知道它是否添加了“”或“#”取决于它是代码语法的div还是类,但我不知道如何添加“。”变量......或者也许是因为我的li对象的嵌套规则,我的意思是具体指我的li对象是:
#nav li
是的,我知道我在说解决方案,但我不能让它工作:S 有人可以帮帮我吗?
**我做到了哈哈! (我试图做的是更改特定li对象内的<image>
(具有通用名称)和类属性,知道当用户触发鼠标时li通过他们的类)
如果有人发现这个问题有用,我只是添加代码**。
$("li")
.mouseover(function() {
var $myClass = $(this).attr("class");
$myClass = "." + $myClass + " a";
var src = $($myClass).find('img').attr("src").match(/[^\.]+/) + "_over.png";
$myImg = $myClass + " img";
$($myImg).attr("src", src);
$($myClass).css("color", "#fff");
})
.mouseout(function() {
var $myClass = $(this).attr("class")
$myClass = "." + $myClass + " a";
var src = $($myClass).find('img').attr("src").replace("_over", "");
$myImg = $myClass + " img";
$($myImg).attr("src", src);
$($myClass).css("color", "#E3C922");
});
答案 0 :(得分:1)
你可以在css中执行此操作:
.yourClass{
background: url(/path/image.jpg);
}
.yourClass:hover{
background: url(/path/image_over.jpg);
}
除非您为每个li都有单独的图像。那么您可能想澄清您的需求,以便我可以将其更新为更有用的答案。
以防万一...
$("li")
.mouseover(function() {
var src = $(this).find('img').attr("src").match(/[^\.]+/) + "_over.png";
$(this).find("img").attr("src", src);
$(this).css("background-color", "#fff");
})
当你单独在该对象的范围内时,没有理由声明myCLass var。所以你添加over状态,然后更改img找到的src和li的背景颜色。
答案 1 :(得分:0)
这样做的一个简单方法是在没有悬停的情况下为“li”元素设置一个css类,然后在将背景图像设置为您想要的任何内容时将另一个css类悬停在其上。
然后,在您的jQuery中,您将使用removeClass()函数和addClass()函数。 addClass()函数会添加带有悬停图像的类。
答案 2 :(得分:0)
您是否希望在鼠标上更改课程?
$(li).mouseover(function{$(this).addClass("whatever");});
$(li).mouseout(function{$(this).removeClass("whatever");});
$(li).mouseover(function{$(this).addClass("whatever");});
$(li).mouseout(function{$(this).removeClass("whatever");});
您也可以使用方法
答案 3 :(得分:0)
您可以使用 $ varname 方法进行变量声明 var 关键字