对php的Ajax请求每页面加载只能运行一次

时间:2016-06-13 11:49:59

标签: javascript php jquery ajax

我在这里发现了一些这样的问题,但没有一个对我有用。我有一个最喜欢的按钮,我希望我的用户按下喜欢的东西。 ajax请求工作正常,收藏夹存储在数据库中,但我只能使用它一次然后我必须刷新页面以取消/取消该项目。该按钮的代码是:

<div id="fav-icon">
    <?php
    // Function checks if user has fav'd the item.
    $isFav = favourite($user->id) ? 'un-fav' : 'fav'; 
    ?>
    <i id="<?php echo $item->id; ?>" class="<?php echo $isFav; ?>"><span class="font-12 fa fa-heart"></span></i>
</div>

Jquery / Ajax

$('.fav').click(function(e){
    var con = $(this).attr('id');
    $.ajax({
      url: 'fav.php',
      type: 'POST',
      async: true,
      data:{
        'fav' : con
      },
      success:function(){ 
        $('#fav-icon').load(document.URL +  ' #fav-icon');
      }
    });
  });

  $('.un-fav').click(function(e){
    var con = $(this).attr('id');
    $.ajax({
      url: 'fav.php',
      type: 'POST',
      async: true,
      data:{
        'fav' : con
      },
      success:function(){ 
        $('#fav-icon').load(document.URL +  ' #fav-icon');
      }
    });
  });

所以这只能运作一次!我尝试了一些不同的功能来尝试使这项工作包括:

$('.fav').live('click', function(e) {

谁能告诉我哪里出错了,以及让我的按钮多次工作的正确方法?

1 个答案:

答案 0 :(得分:2)

使用$(document).on()点击事件

$(document).on('click','.fav', function(e) { 
...
});