通过查询更新特定类

时间:2017-01-12 18:46:24

标签: jquery css

我可能在这里完全愚蠢,为此我道歉但我有点生疏。

我正在使用一个评级系统,默认使用defaultUL和LI css样式,但这些影响了网站的其余部分,因此我将它们定义为不同的类名:

ul.ratings li.ratings

脚本根据mysql值更新样式,但由于某些原因,我似乎无法正确显示jQuery,并且星标显示没有评级且不更新。

有人可以帮我理解这个吗?

$(document).ready(function() {
  $('.post li').mouseout(function() {
    $(this).siblings().andSelf().removeClass('selected highlight')
  }).mouseover(function() {
    $(this).siblings().andSelf().removeClass('selected');
    $(this).prevAll().andSelf().addClass('highlight');
  })

  $('.post li').click(function() {
    $(this).prevAll().andSelf().addClass('selected');
    var parent = $(this).parent();
    var oldrate = $('li.selected:last', parent).index();
    parent.data('rating', (oldrate + 1))
    data = new Object();
    data.id = parent.data('id');
    data.rating = parent.data('rating')
    $.ajax({
      url: "add_rating.php", // path of the file
      data: data,
      type: "POST",
      success: function(data) {
        alert('Your rating is accepted.');
      }
    });
  })

  /* reset rating */
  jQuery('.post ul').mouseout(function() {
    var rating = $(this).data('rating');
    if (rating > 0) {
      $('li:lt(' + rating + ')', this).addClass('selected');
    }
  })
})

html如下:

<div class="post">

    <ul class="rating"  data-id = "<?php echo $row['fileID']; ?>" data-rating ="<?php echo $row["rating"]; ?>">
    <?php 
    for($i=1; $i<=5; $i++) 
    {
        $selected = "";
        if(!empty($row["rating"]) && $i<=$row["rating"]) 
        {
            $selected = "selected";
        }
    ?>
        <li class="rating <?php echo $selected; ?>">&#9733;</li>  
    <?php 
    }  
    ?>
    </ul>
</div>

0 个答案:

没有答案