所以我制作了一个图像切换函数,可以在两个图像之间切换。更具体地说,它切换一个div的背景图像。
我使用jquery .data()函数作为计数器,其中一个=第一个图像,两个=切换图像。
下面是我使用的算法:
它似乎在第一次尝试中替换了图像,就像在第一次"if“中一样,但是在第二次尝试(其他部分)中,它不会再次替换图像。它似乎永远达不到其他部分,即使第一个如果应该返回假,然后去其他。
任何帮助都将不胜感激。另外,我知道有一个.toggle()函数和其他图像切换方法,但是我必须使用这个方法,因为这只是一个大型程序中一个小的、经过编辑的块。
下面是代码:
<!DOCTYPE html>
<html>
<head>
<script src="jquery.js"></script>
<link rel="stylesheet" type="text/css" href="mouseovertestlayout.css" />
<script>
function startEdit()
{
$("div").click(function ()
{
if (($(this).data('kangaroo')) == "one")
{
$(this).css('background-image', "url(image2.png)");
$(this).data('kangaroo',"two");
}
else
{
(this).css('background-image', "url(image1.png)");
$(this).data('kangaroo',"one");
}
});
}
</script>
</head>
<body>
<div class="container" data-kangaroo="one" ></div>
<button onclick="startEdit()"> </button>
</body>
</html>
这是我的.css
.container
{
width: 20px;
height: 20px;
line-height: 0;
border-style:solid;
border-width:1px;
border-color:red;
padding: 20px;
background-repeat:no-repeat;
background-image:url('image1.png');
}
发布于 2012-09-19 06:18:24
您在“否则”中有一个错误,第一行是(this)
中缺少的$
发布于 2012-09-19 06:19:50
您缺少了一个$ in else子句。
固定:
function startEdit() {
$("div").click(function ()
{
if (($(this).data('kangaroo')) == "one")
{
$(this).css('background-image', "url(image2.png)");
$(this).data('kangaroo',"two");
}
else
{
$(this).css('background-image', "url(image1.png)");
$(this).data('kangaroo',"one");
}
});
}
发布于 2012-09-19 06:18:47
试着像这样
if (($(this).attr("data-kangaroo")) == "one") //Here is the edit
{
$(this).css('background-image', "url(image2.png)");
$(this).data('kangaroo',"two");
}
else
{
$(this).css('background-image', "url(image1.png)"); //Here put "$" before (this)
$(this).data('kangaroo',"one");
}
https://stackoverflow.com/questions/12489431
复制相似问题