为什么我的图像会以这种方式滚动?

时间:2009-07-22 20:21:34

标签: php javascript

我的图像翻转工作...但只有一种方式。

function heartOver(id)
{

    if(document.getElementById('heart' + id).src == 'images/heart.png');
    {
        parent.document.getElementById('heart' + id).src = 'images/unheart.png';
    }

    if(document.getElementById('heart' + id).src == 'images/unheart.png');
    {
        parent.document.getElementById('heart' + id).src = 'images/heart.png';
    }   

}


<img src="images/heart.png" id="heart'.$row['id'].'" alt="Love! width="16" height="16" border="0" onmouseover="heartOver'."('$row[id]')".'; return true;" onmouseout="heartOver'."('$row[id]')".'; return true;">

如果我注释掉任何一个IF语句,那么另一个会起作用,但它们不能一起工作......

注意:尝试使用else if没有运气。

想出来...... Duh:我有if();不如果......

2 个答案:

答案 0 :(得分:5)

在它们之间添加一个else - 否则当第一个if计算为true时,它将导致第二个if被评估为true!

这是一个简化的例子,它还检查了img元素甚至存在的假设:

var img=document.getElementById('heart' + id);
if (img)
{
    if(img.src == 'images/heart.png')
    {
        img.src = 'images/unheart.png';
    }
    else if(img.src == 'images/unheart.png')
    {
        img.src = 'images/heart.png';
    }
} 
else
{
     alert("Ooooh! No heart"+id+" element found!");
}    

答案 1 :(得分:0)

这是对的吗?

<img src="images/heart.png" id="heart'.$row['id'].'" alt="Love! width="16" height="16" border="0" onmouseover="heartOver'."('$row[id]')".'; return true;" onmouseout="heartOver'."('$row[id]')".'; return true;">

试试这个:

<img src="images/heart.png" id="heart<?php echo $row['id']; ?>" alt="Love!" width="16" height="16" border="0" onmouseover="heartOver(<?php echo $row['id']; ?>)" onmouseout="heartOver(<?php echo $row['id']; ?>)">