ajax成功只运行一次


jQuery $.ajax success runs for one time only

我正在尝试实现单星评级(即类似按钮)。

我想更改(切换)星形图像。它似乎唯一的问题是,在使用$.ajax时,在"success:"部分,srcattr(或其他任何东西,如.css)只适用于一次(第一次)!事实上,客户端必须刷新页面才能看到最新的星形图像/状态(从数据库加载)。


这是代码:

<script language="javascript">
    // Ajax: Star
    $("#p<?php echo $pID;?>").find('.star').click(function (e) {
        e.preventDefault();
        $.ajax({
        type: "POST",
        url: "./ajax.php",
        data: "pID=<?php echo $pID;?>",
        cache: false,
        success: function(html)
        {
            $("#s<?php echo $pID;?>").attr("src",html);
        }
        });
    });
    // END OF: Ajax: Star
</script>

php文件echo返回一个文件名,该文件名应替换为src属性(例如star-on-png或star-off.png)

所以我认为问题是:为什么"成功:功能"只触发一次?

我终于意识到问题是什么。这是由于服务器端文件(php),因为它总是评估客户端文件中给出的静态数据。我所需要做的就是刷新php文件上的toggle触发器。