我試圖實現一個類似按鈕,點擊時改變顏色。我試圖用jQuery動態替換圖片。使用jQuery動態替換圖像
<div class = "col-sm-10" style = "margin-top: 2%">
<input style = "width : 4%; height: 4%" type = "image" id = {{schedule.id}} + "image" class = "likes"
data-scheduleid = "{{schedule.id}}" data-user = "{{curruser.person.id}}"
src = "{% static 'img/notliked2.png' %}"/>
</div>
這是作爲按鈕被按下的圖像文件。基本上,我試圖改變點擊圖像文件。
$(document).ready(function() {
$('.likes').click(function(e){
var sched_id;
var curruser;
sched_id = $(this).attr("data-scheduleid");
curruser_id = $(this).attr("data-user");
$.get('/profiles/like_schedule/', {schedule_id: sched_id, current_user: curruser_id}, function(data){
var first = data.split("/")
$('#' + sched_id).html(first[0]);
console.log(first[1])
//$('#likes').html("<input style = 'width : 4%; height: 4%' type = 'image' id = {{schedule.id}} class = 'likes' data-scheduleid = '{{schedule.id}}' data-user = '{{curruser.person.id}}' src = {% static 'img/" + first[1] + "' %}/>");
$('.' + sched_id + "image").attr("src", "{% static 'img/" + first[1] + "' %}")
e.preventDefault();
});
});
});
這是jQuery。我首先登錄了[1],它是正確的。當有人喜歡和不喜歡時,它在「notliked2.png」和「liked2.png」之間交替。但出於某種原因,替換圖像源不起作用。我什至嘗試更換整個HTML,但它仍然無法正常工作。有人知道發生了什麼嗎?
謝謝
阿爾伯特金
編輯: 這裏是意見代碼。
def like_schedule(request):
sched_id = None
if request.method == 'GET':
sched_id = request.GET['schedule_id']
curruser_id = request.GET['current_user']
likes = 0
liked = "liked2.png"
if sched_id:
sched = schedules.objects.get(id = int(sched_id))
curruser = person.objects.get(id = int(curruser_id))
if curruser in sched.person_likes.all():
liked = "notliked2.png"
sched.likes -= 1
sched.person_likes.remove(curruser)
else:
sched.likes += 1
sched.person_likes.add(curruser)
likes = sched.likes
sched.save()
return HttpResponse(str(likes) + "/" + str(liked))
至於重複的帖子,我確實嘗試過,但他們不工作。
可能的重複[刷新圖像與一個新的在相同的網址](https://stackoverflow.com/questions/1077041/refresh-image-with-a-new-one-at-the-same-url ) – Luke
可能的重複https://stackoverflow.com/questions/36525744/replacing-images-in-django-with-jquery –