我创建了一个包含不同行的表格,因为评分开始我使用raty:
while ($row = pg_fetch_assoc($rs)) {
echo "<tr>";
echo "<td>" . $row['question_id'] . "</td>";
...
echo "<td><div> \r \n <div id=\"score-question" . $row['question_id'] ."\" data-score=\"" . $row['rating'] . "\"></div> \r \n </div> \r \n</td>";
...
echo "</tr>";
}
<script type="text/javascript">
$(function() {
$.fn.raty.defaults.path = '../plugins/raty/lib/img';
$('#score-question1').raty({
readOnly: true,
noRatedMsg: "Press edit to change the rating",
score: function() {
return $(this).attr('data-score');
}
});
$('#score-question2').raty({
readOnly: true,
noRatedMsg: "Press edit to change the rating",
score: function() {
return $(this).attr('data-score');
}
});
$('#set-action').on('click', function() {
var options = $('#set-function-demo').val(),
command = "$('#function-demo').raty('set', " + options + ");";
eval(command);
});
$('#destroy-action').on('click', function() {
$('#function-demo').raty('destroy');
});
});
</script>
我使用javascript函数来控制星级评分栏。我必须使用不同的名称,因为你不能有两个具有相同名称的div,但现在我必须为每个评级栏使用单独的函数。呃是解决这个问题的更好方法吗?我对javascript没有任何经验,所以这可能是一个初学者问题
答案 0 :(得分:7)
不是name
,而是id
必须是唯一的;)
您可以对所需的每个div使用id
属性,而不是使用class
,然后在jQuery中使用它,如下所示:
$('.ratyClass')
答案 1 :(得分:3)
只是详细说明:
$('.ratyClass').raty({
readOnly: true,
noRatedMsg: "Press edit to change the rating",
score: function() {
return $(this).attr('data-score');
}
});
当你使用$(this)时,它只对调用函数的对象起作用,不会影响其他$('.ratyClass')
个对象。
一点阅读可能会让事情变得更清晰: http://www.quirksmode.org/js/this.html