重新加载后无法单击jquery ajax项目
我正在使用django
在体块中
{% if liked %} {% else %} {% endif %}
在on_ready脚本块中:
$.ajaxSetup({ data: {csrfmiddlewaretoken: '{{ csrf_token }}'}, }); $('#like').click(function() { $.post("{% url 'likevideo' %}", {uid:{{ login_id }}, videoid:"{{ videoid }}"}, function(data,status){ $('#tag_like').load(' #tag_like') }); }); $('#unlike').click(function() { $.post("{% url 'unlikevideo' %}", {uid:{{ login_id }}, videoid:"{{ videoid }}"}, function(data,status){ $('#tag_like').load(' #tag_like') }); });
它在第一次单击图像时工作正常。(转到另一个图像)但是当再次单击它时,不会发生任何ajax动作。 我读
使用JQuery和AJAX在Django中刷新div
使用trigger(’reload’)进行ajax调用后jqgrid没有重新加载
添加jQueryui按钮以动态添加内容
但还没有达到具体的解决方案……任何解决方案变化很小?
试试这个事件绑定:
$('#tag_like').on("click", "#like", function() { $.post("{% url 'likevideo' %}", {uid:{{ login_id }}, videoid:"{{ videoid }}"}, function(data,status){ $('#tag_like').load(' #tag_like') }); }); $('#tag_like').on("click", "#unlike", function() { $.post("{% url 'unlikevideo' %}", {uid:{{ login_id }}, videoid:"{{ videoid }}"}, function(data,status){ $('#tag_like').load(' #tag_like') }); });
使用.on()
因为您正在将DOM
加载到ID为tag_like
div。
$(document).on('click','#like',function(){ //code here. });
这样做:
$('#tag_like').on("click", "#like", function() { $.post("{% url 'likevideo' %}", {uid:{{ login_id }}, videoid:"{{ videoid }}"}, function(data,status){ $('#tag_like').load(' #tag_like') }); });
这种方法很快,因为每次单击按钮时它都会阻止jQuery解析整个文档。