Javascript:我如何才能影响我试图触发的特定ID?

问题描述:

例如,当我点击一个按钮时,它会以某种方式影响页面上的每个按钮。我只是想影响我点击的那个。Javascript:我如何才能影响我试图触发的特定ID?

下面是脚本:

// when the user clicks on like 
    $('.icon-wrapper').on('click', function(){ 
     var postid = $(this).data('id'); 
      $post = $(this); 

     $.ajax({ 
      url: 'user_profiles.php', 
      type: 'post', 
      data: { 
       'liked': 1, 
       'postid': postid 
      }, 
      success: function(response){ 
       $post.parent().find('span.likes_count').text(response); 

       $post.addClass('hide'); 
       $post.siblings().removeClass('hide'); 
       $post.siblings().addClass('anim'); 
       $post.removeClass('anim'); 


      } 
     }); 
    }); 

HTML:

$sql = "SELECT * FROM user_images WHERE username = '$username' ORDER BY id DESC"; 
     $result = mysqli_query($db, $sql); 
      echo '<div class="hero">'; 
      echo '<div class="hero-content">'; 
      echo '<div class="row">'; 

    while ($row = mysqli_fetch_array($result)) { 
     echo '<div class="social-img hide-750">'; 
     echo '<div class="social-content">'; 
     echo '<a style="outline: none;" href="../profiles/uploads/'.$row["images"].'" data-fancybox="quote" data-caption="Uploaded by: '.$row["username"].'" >'; 
     echo  '<img src="../profiles/uploads/'.$row["images"].'">'; 
     echo  '</a>'; 
     echo  '<div class="share">'; 
     echo    '<form enctype="multipart/form-data" action="../update_note" method="post">'; 
     echo    '<i class="fa fa-comment-o" aria-hidden="true"></i>'; 
     echo    '<a href="../delete.php?id='.$row["id"].'"><i style="float:right;" class="fa fa-times" aria-hidden="true"></i></a>'; 
     echo    '<input type="hidden" name="id" value="'.$row["id"].'"/>'; 
     echo   '<input type="hidden" name="img" value="'.$row["images"].'"/>'; 
     echo    '<input type="hidden" name="submitOne" />'; 
     echo    '<div class="col-3">'; 
     echo    '<input name="note" class="effect-2" type="texxxt" placeholder="Update your note..." /> '; 
     echo    '<span class="focus-border"></span>'; 
     echo    '</div>'; 
     echo    '</form>'; 
     echo  '</div>'; 
     ?> 
     <?php 
     $ssql = "SELECT * FROM likes WHERE userid =".$_SESSION['user_id']." AND postid=".$row['id'].""; 
     $rresult = mysqli_query($db,$ssql); 
     $lrow = mysqli_fetch_array($rresult); 
     ?> 
     <?php 
     if ($lrow['userid']==$_SESSION['user_id'] && $lrow['postid']==$row['id']) { 
      // user has already liked quote 
      echo'<div data-id="'.$row['id'].'" class="icon-appear"> 
       <span class="icon"><i style="color: #FFD700;" class="fa fa-star"></i></span> 
       <div class="border"><span></span></div> 
       <div class="satellite"> 
       <span></span> 
        <span></span> 
        <span></span> 
        <span></span> 
        <span></span> 
        <span></span> 
       </div> 
       <span class="likes_count">'.$row['likes'].'</span> 
       </div>'; 
       echo'<div data-id="'.$row['id'].'" class="icon-wrapper hide"> 
       <span class="icon"><i class="fa fa-star"></i></span> 
       <div class="border"><span></span></div> 
       <div class="satellite"> 
       <span></span> 
        <span></span> 
        <span></span> 
        <span></span> 
        <span></span> 
        <span></span> 
       </div> 
       <span class="likes_count">'.$row['likes'].'</span> 
       </div>'; 

     } else {} 

动画脚本:

var $iconWrapper = $(".icon-wrapper"); 
$iconWrapper.on('click', function() { 
    var _this = $iconWrapper; 
    if (_this.hasClass('anim')) _this.removeClass('anim'); 
    else { 
    _this.addClass('anim'); 
    _this.css('pointer-events', 'none'); 
    setTimeout(function() { 
     _this.css('pointer-events', ''); 
    }, 1200); 
    } 
}) 

注:其实我有这样的早期类似的问题,因为一切都被打印出来mysqli_fetch_array里面,我通过重新排列一些lin来解决这个问题ES。

+0

我想我们会结婚,看看您呈现的HTML代码,看看这里发生了什么。您是否可以使用受影响按钮的HYML代码进行更新? –

+0

你也应该显示HTML – 2017-11-11 15:34:49

+0

我加了HTML –

因此,在您的代码中,您可以复制

var _this = $ iconWrapper;

VAR _this = $(本)

这意味着此背景下,应正确使用。

希望这会有所帮助:-)