用户投票后锁定星级评分系统 - RateIt jQuery 插件
Lock Star Rating System After User Votes - RateIt jQuery Plugin
我有 RateIt jQuery Plugin 在 Django 应用程序上工作。我正在使用 Ajax 来捕获值并将它们发送到服务器并更新页面上的值。
目前,每次用户点击星星时,我都会计算平均点击次数和总点击次数,并将其显示在星星旁边。由于这个项目正在开发中,我更感兴趣的是让它工作并显示大量数据。
但从可用性的角度来看,我认为允许用户设置评级一次、两次,或者在我的情况下,5 次似乎是更好的方法。我正在使用文档中的内容,几乎可以满足我的要求:
$(ri).rateit('readonly', !$(ri).rateit('readonly'));
我在脚本中设置了一个计数器(例如,counter++;
),在 if
语句中,我设置为 readonly
。问题是如果用户再次单击星星,它会切换 write
模式(非 readonly
)。
此后的每次点击只会切换 readonly
模式。
更新
在@Gidon(我相信是 RateIt 的创建者)的帮助下,我已经解决了这个问题。这是 Ajax 脚本中的位。我用 counter = 0;
在 Ajax 调用之外启动了一个计数器,然后用 counter++;
迭代它并用它来测试:
if (counter >= 3) {
$(ri).rateit('readonly', true);
$('.rateit').off('click');
}
我将其设置为 readonly
模式并删除了与 jQuery 的 off()
的点击绑定。
感谢@Gidon 的帮助。这工作正常。用户可以刷新页面并获得更多投票,但我有一些关于使用会话来防止这种情况的想法...
切换是因为这部分:!$(ri).rateit('readonly')
。
这是由 !
和 $(ri).rateit('readonly')
两部分组成的。感叹号 (!
) 是逻辑非运算符,否定它后面的任何内容,($(ri).rateit('readonly')
.
所以它说,取只读属性的当前值,然后翻转它,这样
创建切换效果。
您想做的是:
$(ri).rateit('readonly', true);
强制它进入只读模式。
我有 RateIt jQuery Plugin 在 Django 应用程序上工作。我正在使用 Ajax 来捕获值并将它们发送到服务器并更新页面上的值。
目前,每次用户点击星星时,我都会计算平均点击次数和总点击次数,并将其显示在星星旁边。由于这个项目正在开发中,我更感兴趣的是让它工作并显示大量数据。
但从可用性的角度来看,我认为允许用户设置评级一次、两次,或者在我的情况下,5 次似乎是更好的方法。我正在使用文档中的内容,几乎可以满足我的要求:
$(ri).rateit('readonly', !$(ri).rateit('readonly'));
我在脚本中设置了一个计数器(例如,counter++;
),在 if
语句中,我设置为 readonly
。问题是如果用户再次单击星星,它会切换 write
模式(非 readonly
)。
此后的每次点击只会切换 readonly
模式。
更新
在@Gidon(我相信是 RateIt 的创建者)的帮助下,我已经解决了这个问题。这是 Ajax 脚本中的位。我用 counter = 0;
在 Ajax 调用之外启动了一个计数器,然后用 counter++;
迭代它并用它来测试:
if (counter >= 3) {
$(ri).rateit('readonly', true);
$('.rateit').off('click');
}
我将其设置为 readonly
模式并删除了与 jQuery 的 off()
的点击绑定。
感谢@Gidon 的帮助。这工作正常。用户可以刷新页面并获得更多投票,但我有一些关于使用会话来防止这种情况的想法...
切换是因为这部分:!$(ri).rateit('readonly')
。
这是由 !
和 $(ri).rateit('readonly')
两部分组成的。感叹号 (!
) 是逻辑非运算符,否定它后面的任何内容,($(ri).rateit('readonly')
.
所以它说,取只读属性的当前值,然后翻转它,这样 创建切换效果。
您想做的是:
$(ri).rateit('readonly', true);
强制它进入只读模式。