我试图实现一个类似按钮,点击时改变颜色。我试图用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 –