javascript - 当我单击图像进行评分时,另一张评分图像中也会发生同样的情况

标签 javascript php html mysql

我用 3 张图片创建了评级系统。问题是,当我想对一篇文章(不是第一篇)进行评分时,之前所有文章的评分图像中都会发生同样的情况。评级系统是用JavaScript创建的,文章数据来自MySQL。

<form id="ratethis-<?=$PK?>" action="rate.php?idPI=<?=$idPK?>" method="post">

<div id="rating" class="rating">
<input type="hidden" value="-1"  class="ratingval"/>
<input type="hidden" value="-1" name="rating" class="clicked"/>
<img name="1" src="img/1.png"   />
<img name="2" src="img/2.png"  />
<img name="3" src="img/3.png"  />

 <div>



<input type="submit" value="Submit"/><br><br>
</div>
</form>

抱歉! JavaScript 代码:

<script src="js/jquery-1.6.2.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script>
<script>
$(function () { 
$(".rating").each(function(){
    var id = $(this)[0].id;
    $("#" + id + " img").each(function(){
        $(this).mouseover(function(){
            var index = $(this).index()-1;
            $("#" +id+ " .ratingval")[0].value = index;
            $("#" +id+ " .result")[0].innerHTML = $(this).attr("text");
            for(var i=0;i<index;i++)
            {
                $($("#" +id+ " img")[i]).attr("src","img/3.png");
            }
        });
        $(this).click(function(){
            var index = $(this).index();
            $("#" +id+ " .ratingval")[0].value = index;
            $("#" +id+ " .clicked")[0].value = index-1;
        });
        $(this).mouseout(function(){
            var curretn = $("#" +id+ " .clicked")[0].value;
            $(this).attr("src","img/2.png");
            var index = $(this).index();
            for(var i=0;i<curretn;i++)
            {
                $($("#" +id+ " img")[i]).attr("src","img/3.png");
            }
            for(var j=curretn;j<index;j++)
            {
                $($("#" +id+ " img")[j]).attr("src","img/2.png");
            }
        });
    });
});
 });
 </script>

最佳答案

这是因为您正在使用

    $(".rating").each(function(){
    ...
    }

上面的代码针对每个选择器匹配(即“. rating”)执行。

尝试为每篇文章生成一个虚拟类,然后尝试使用此方法:

    $("article1 .rating").each(function(){...}
    $("article2 .rating").each(function(){...}

等等...

关于javascript - 当我单击图像进行评分时,另一张评分图像中也会发生同样的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21401617/

相关文章:

javascript - 为什么在多选列表中第二次没有选中该选项?

javascript - 如何仅绘制起点和终点的 Highchart 图

javascript - 如何为 React Chart JS 中的点创建 OnClick 事件?

PHP & IIS : LDAPS Connection for Password Change

php - 枚举替代方案

javascript - 根据输入过滤 DOM 元素 - JavaScript

javascript - 链接index.html client.js 和 server.js

javascript - 为什么 Facebook 不合并它的 CSS/JS 文件?

javascript - 并在react/javascript中使用Or条件语句

php - 排除 PDO::fetchAll() 的编号索引元素