jQuery单击功能第二次不起作用

时间:2019-08-16 00:58:50

标签: javascript jquery html onclick

当用户第二次单击不起作用时,用户需要重新加载页面以使其起作用

<script>
$(document).ready(function() {

  $("#like_post").click(function(e) {
     // $("#like_post").on("click", "#like_post", function (e) {
    e.preventDefault();


    var post_info = $("#post_info :input").serialize();
    $.post("backend/ajax/like_post.php", post_info).done(function(data) {
      $("#like_post").html(data);
     $("#like").load(location.href+" #like>*","");

    }).fail(function() {
      //alert("Error submitting forms!");
    })
  })
})
</script>

这是db的后端返回 如果用户喜欢,它将显示

<div id="like_post><a href="" id="l"><input type="hidden" value="unlike" name="like_button" /><i style="color:red" class="fa fa-heart fa-2x" aria-hidden="true" data-toggle="tooltip" data-placement="top" title="'.$lang['you_liked_it'].'"></i>
    </a></div>

否则它将显示

 <div id="like_post"> <a href="" id="l"><input type="hidden" value="like" name="like_button" /><i class="fa fa-heart-o fa-2x" aria-hidden="true"  data-toggle="tooltip" data-placement="top" title="'.$lang['like_it'].'"></i>
</a></div>

在前端进行相同的验证,将隐藏的输入更改为like或different,我的后端检查很好,当我检查html响应时返回所有OK,但是问题是当用户喜欢时jquery无法正常工作与不重新加载页面不同,它只需要单击一下,然后用户需要重新加载页面即可。

我之前也遇到过类似的问题,这与事件委派有关。

1 个答案:

答案 0 :(得分:0)

在代码中使用注释行而不使用“ #like_post”:

$("#like_post").on("click", function (e) {

});