0

私はここでかなり迷っており、JavaScriptの専門家ではありません。ユーザーが「いいね!」または「いいね!」をクリックしたときに「投票していただきありがとうございます」と表示したいのですが、ページを更新しなくても「投票していただきありがとうございます」という単語が自動的に表示されます。

これが私のhtmlです:

{% if poll.privacy == "own" and request.user.get_profile.parliment != poll.location %}
You do not have permission to vote this.
{% else %}
{% if has_vote %}
{% if poll.rating_option == '1to5' %}
<div class="rate">
<div id="poll-rate-{{ poll.pk }}"></div>
</div>
{% else %}

Thanks for your vote.
{% endif %}

{% else %}
{% if poll.rating_option == 'yes_no' %}
<a href="javascript:void(0)" class="rate btn btn-xs btn-success mr5 vote-positive" rel="{% url 'vote_vote' poll.pk 1 %}" alt="{{ poll.pk }}">Yes</a>
<a href="javascript:void(0)" class="rate btn btn-xs btn-danger vote-negative" rel="{% url 'vote_vote' poll.pk 0 %}" alt="{{ poll.pk }}">No</a>
{% elif poll.rating_option == 'like_dislike' %}
<a href="javascript:void(0)" class="rate btn btn-xs btn-success mr5 vote-positive" rel="{% url 'vote_vote' poll.pk 1 %}" alt="{{ poll.pk }}">Like</a>
<a href="javascript:void(0)" class="rate btn btn-xs btn-danger vote-negative" rel="{% url 'vote_vote' poll.pk 0 %}" alt="{{ poll.pk }}">Dislike</a>
{% elif poll.rating_option == '1to5' %}
<div class="rate">
<div id="poll-rate-{{ poll.pk }}"></div>
</div>
{% endif %}
{% endif %}
{% endif %}

ここに私のjavascriptがあります:

function bindVoteHandler() {
    $('a.vote-positive, a.vote-negative').click(function(event) {
        event.preventDefault();
        var link = $(this).attr('rel');
        var poll_pk = $(this).attr('alt');
        var selected_div = $(this).parent('div');
        selected_div.html('<img src="{{ STATIC_URL }}img/loading_small.gif" />');
        $.ajax(link).done(function( data ) {
            var result_div = $('div#vote-result-'+poll_pk);
            result_div.html(data);
            result_div.removeClass('vote-result-grey-out');
            selected_div.html('<small>Thanks for your vote.</small>');
        });
    });
};

$(document).ready(function() {
    bindPostCommentHandler();
    bindLoadCommentHandler();
    bindDeleteCommentHandler();
    bindVoteHandler();
    $('.show-abuse').click(function(){
        var url = $(this).attr('rel');
        $('#abuseModal .modal-body').load(url);
    });
    //load rating html
    $('#rate_list').load("{% url 'rate_list' request.session.location_parliment_id %}");
});
</script>

Like / Vote / rateの後にページを更新して表示させる必要があるのはなぜですか(投票していただきありがとうございます)。誰かが助けを知っているか、私とリンクを共有してください。

以下は画像です:

いいねをクリックする前に: ここに画像の説明を入力

いいねをクリックした後: ここに画像の説明を入力

次に、ブラウザを更新すると単語が表示され、[いいね]をクリックすると自動的に表示されるはずです。 ここに画像の説明を入力

4

1 に答える 1

1

あなたがすべきことは、クリック機能にjQueryを使用することです。投票ボタンが押されると、このスクリプトは以前は非表示になっていた投票確認を表示します。投票ボタンを非表示にする必要がある場合は、それも含めました。明らかに、クラス名を適切なものに置き換える必要があります。

 <style>
    .yourVoteConfirmation {
    display: none;
    }
    </style>

    <script>
    $(document).ready(function () {
        $('.yourVoteButton').click(function() {
        $('.yourVoteConfirmation').show('fast');
        // if you need to hide the vote button
        $('.yourVoteButton').css('display', 'none');

    });
    });
    </script>
于 2013-11-13T14:14:26.233 に答える