0

クリックすると別の小さなアイコンに変更し、別のページに番号をPOSTしたい小さなアイコンがあります(ただし、新しいページのHTMLは無視してください)。目的は、ユーザーが製品を「お気に入り」にすることです。私はそれを動作させることはできませんが、何も起こりません。

私が頭の中で使用しているコードは次のとおりです。

<script type="text/javascript">
$(function() {
    $('.addlib').live("click",function() {
        var pibn = $(this).attr("id");
        $.ajax({
            type: "POST",
            url: "/addlibrary.php",
            data: "pibn="+pibn, 
            beforeSend: function() {
                $('a.addlib').html('<img src="/images/icons/tick.png" width="18" height="18" class="iconbutton" />');
            },
            success: function(html) {
                return false;
            }
        });
        return false;
    });
});
</script>

そして体内で:

<span id="1000915326" class="addlib"><a href="#"><img src="/images/icons/info.png" width="18" height="18" class="iconbutton" /></a></span>

何か案は?

4

2 に答える 2

1
beforeSend: function() {
   $('a.addlib').html('<img src="/images/icons/tick.png" width="18" height="18" class="iconbutton" />');
}

に置き換えます

beforeSend: function() {
   $('span.addlib a').html('<img src="/images/icons/tick.png" width="18" height="18" class="iconbutton" />');
}

a.addLib存在しないからです。

完全なテスト済みコード。

$(function() 
{
    $('.addlib').live("click",function()
    {
        var pibn       = $(this).attr("id");
        var clickedDom = $(this);
        $.ajax(
        {
            type: "POST",
            url: "/addlibrary.php",
            data: "pibn="+pibn, 
            beforeSend: function()
            {
                clickedDom.find('a').html('<img src="/images/icons/tick.png" width="18" height="18" class="iconbutton" />');
            },
            success: function(html)
            {
                return false;
            }
        });
        return false;
    });
});
于 2013-02-20T04:44:03.650 に答える
0

はるかに単純なソリューション

$(document).on('click', '.addlib', function() {
    var span = $(this),
        img = span.find('img');
    $.post('/addlibrary.php', {
        pibn: span.attr('id')
    }, function() {
        img.attr('src', img.attr('src').replace('info', 'tick'))
            .parent('a').unwrap();
    });
});
于 2013-02-20T04:50:45.177 に答える