重新加载后无法单击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解析整个文档。