在jquery成功函数上更改图像?

时间:2010-10-04 22:38:59

标签: php jquery html css ajax

我有这个jquery投票脚本,一切正常,只是ajax请求的成功函数中的图像没有改变图像?

jquery的:

$("a.vote_down").click(function(){
    //get the id
    the_id = $(this).attr('id');



    //the main ajax request
        $.ajax({
            type: "POST",
            data: "action=vote_down&id="+$(this).attr("id"),
            url: "votes.php",
            success: function(msg)
            {
                $("span#votes_count"+the_id).fadeOut();
                $("span#votes_count"+the_id).html(msg);
                $("span#votes_count"+the_id).fadeIn();
                            // this is my problem here
                $("span#vote_buttons"+the_id).attr("src", "images/downvoteActive.png");

            }
        });
    });

HTML:

<span class='vote_buttons' id='vote_buttons<?php echo $row['id']; ?>'>
        <a href='javascript:;' class='vote_up' id='<?php echo $row['id']; ?>'>Vote Up!</a>

        <a href='javascript:;' class='vote_down' id='<?php echo $row['id']; ?>'>Vote Down!</a>

的CSS:

a.vote_up, a.vote_down {
    display:inline-block;
    background-repeat:none;
    background-position:center;
    height:16px;
    width:16px;
    margin-left:4px;
    text-indent:-900%;
}

a.vote_up {
    background:url("images/upvote.png");
}

a.vote_down {
    background:url("images/downvote.png");
}

        </span>

2 个答案:

答案 0 :(得分:2)

<强>更新

根据更新后的问题,span元素没有src属性。

您还有另一个主要问题。您将相同的id分配给多个元素:vote_upvote_down链接会发生这种情况。

根据我的理解,您可能只想为每个idvote_up链接指定唯一的vote_down,并且只需在成功回调中更改其背景网址。< / p>


第二次更新:

我们为每个vote_upvote_down链接分配一个唯一ID:

<a ... class='vote_up' id='vote_up<?php echo $row['id']; ?>'> ...
<a ... class='vote_down' id='vote_down<?php echo $row['id']; ?>'> ...

然后,您可以尝试用以下方法替换有问题的attr()来电:

$("#vote_up" + the_id).css("background-image", "url(images/downvoteActive.png)");

上一个答案:

您正在尝试更改src元素的span属性。我想这应该是img,但你可以从选择器中省略标签名称:

$("#vote_buttons"+the_id).attr("src", "images/downvoteActive.png");

答案 1 :(得分:0)

您的选择器显示“span#vote_buttons”,而非“img#vote_buttons”。基于“id”值的选择器不需要标签名称,通常最好将其关闭。