我正在尝试实现单星评级(即类似按钮)。
我想更改(切换)星形图像。它似乎唯一的问题是,在使用$.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触发器。