ajax调用后jQuery修改元素

时间:2014-12-31 00:44:26

标签: javascript jquery ajax

我的jQuery代码遇到了一个小问题:

function afterVoting(id, votes, direction) {
    $('.votebtn').each(function(i,o) {
        if($(this).data('fbid') == id) {
            $(this).parent().parent().find('.grlvotes').text(votes); // THIS DOESN'T UPDATE
            $(this).shake(direction);
        }
    });
}

$(document).on('click', '.votebtn', function(e) {
    var voted = $(this).data('fbid');
    $.get('....', function(data) {
        $('.votesself').text(data.idata.votes_self); // this works because its not modified element
        afterVoting(voted, data.result.votes, data.result.vote ? {direction:'top'} : {direction:'left'});
    });
});

执行摇动方法确定但前面的行不是。按钮在摇晃,但是' grlvotes'没有更新。 这是NEXT PAGE代码,并通过调用将内容添加到页面中:

$('.nextpage').click(function() {
    if(page + 1 <= maxpage) {
        $('#loading').show();
        page++;
        $.get('.....', function(data) {
            showGirls(data);
            maxpage = data.idata.maxpage;
            $('.pagenum').text(page);
        });
    }
});

function showGirls(data) {
    $('#loading').hide();
    $('.grl').remove();
    $(data.result).each(function(i,o) {
        var girl = 'just long HTML code with data from AJAX call';
        $('.grlwrapper').append(girl);
    });
    forceImageLoading();
}

这是HTML

<div class="grl">
    <div class="data"> <b>VOTES</b>  <span class="grlvotes">0</span>

    </div>
    <div class="data">
        <div class="votebtn" data-fbid=""><b>VOTE</b> 
            <img src="img/like.png" alt="like" />
        </div>
    </div>
</div>

我有一个代码可以附加&#39; grl&#39;到主包装器(来自AJAX调用)。第一次加载页面时,&#39; grls&#39;由PHP加载,一切正常。但是当你点击下一页&#39;和&#39; grls&#39;由AJAX调用加载,它会出现问题。

任何想法,为什么不更新?

1 个答案:

答案 0 :(得分:0)

如果您使用的是jquery&lt; = 1.7,请使用

$(element).live("click",function(){
});

而不是

$(element).click(function(){
});

用于jquery附加元素,如果使用jquery&gt; 1.7则使用

$(element).on("click",function(){
});