これは私のマークアップです:
<a href="#" class="reviews" id="like" rel="popover" data-content="" data-placement="right" data-original-title="Like episode">
<i class="icon-thumbs-up"></i>
Loved it
</a>(<span id="episode_likes">{{ episode_likes }}</span>
これが JavaScript です。
$('a.reviews#like').click(function(e){
var element = $(this);
$.ajax({
url: '/episoderatings/like/',
type: 'POST',
dataType: 'json',
data: {
csrfmiddlewaretoken: '{{ csrf_token }}',
episode_number: current,
story: current_story
},
success: function(response){
if(response=='You have liked this episode'){
$('span#episode_likes').text(parseInt($('span#episode_likes').text())+1);
}
$(element).attr('data-content',response);
$(element).popover();
}
});
e.preventDefault();
});
問題は、「いいね」ボタンをクリックしたときに、最初のクリックでポップオーバーが表示されないため、ページが気に入ったかどうかに関係なく、重要な応答を見逃すことです。「いいね」ボタンをクリックすると、2回目にポップオーバーが表示され、それ以降はトグル動作が維持されます。何か案は?