为JQuery中的方法声明一个基本变量

时间:2012-01-21 00:27:01

标签: javascript jquery html css

答案如下

我刚刚开始进入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");
    });

4 个答案:

答案 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 关键字