你好我正在做一个图片比赛页面(有不同的规则)
我似乎无法解决这个“问题”
规则是:用户可以为一张图片投票,但不能为他自己的图片投票。 并且他能够取消他的投票,并投票给另一个人。
我有 PHP 来检查所有这些,它工作正常。
在这种情况下类型为0
function addVote(pictureID, competitionID, type){
$.post('vote.php', {pictureID:pictureID, competitionID:competitionID, vote:1}, function(data){
if (data == 'success') {
$("#comp_voteButton_"+pictureID).text('Remove vote');
$("#comp_voteButton_"+pictureID).addClass("alreadyVoted");
$("#comp_voteButton_"+pictureID).attr("onclick", "remVote(" + pictureID + ", " + competitionID + ")")
if (type == 0){
$('.button:not(.disabled, #comp_voteButton_'+pictureID+')').text('Only one vote permitted');
$('.button:not(.disabled, #comp_voteButton_'+pictureID+')').removeClass('alreadyVoted');
$('.button:not(.disabled)').addClass('.disabled, .red');
getVote(pictureID, competitionID);
}else {
$().toastmessage('showErrorToast', "Error!");
}
});
在同一个文件中:
function remVote(pictureID, competitionID){
$.post('vote.php', {pictureID:pictureID, competitionID:competitionID, vote:0}, function(data){
if (data == 'success') {
$("#comp_voteButton_"+pictureID).text('Vote picture');
$("#comp_voteButton_"+pictureID).attr("onclick", "addVote(" + pictureID +","+competitionID+","+0+")")
$("#comp_voteButton_"+pictureID).removeClass('alreadyVoted');
getVote(pictureID, competitionID);
}else {
$().toastmessage('showErrorToast', "Error!");
}
});
编辑: 如果这样更容易,这里是链接:
<a href="javascript:void(0);" class="button blue small" id="comp_voteButton_<?echo $row['ID']?>" onclick="addVote(<?echo $row['ID']?>, <?echo $id?>, <?echo $vote?>)">Vote</a>
我想要的:在 addVote 上,所有其他按钮都应设置为“onclick(remVote(ID, compID))”——但我不能这样做,因为两个 ID 都没有输入到 addVote 函数中。
我希望你们能明白我的问题(也许这是不可能的,或者必须采取一种奇怪的解决方法)- 但也许有一个很好的方法来解决这个问题。
最佳答案
好吧,我承认这是一个非常奇怪的问题。
但我做了其他事情(感谢您的宝贵时间)
我做了什么:在 addVote 中......
$('.button:not(.disabled, #comp_voteButton_'+pictureID+')').hide();
然后它会隐藏所有其他按钮,因此用户不会认为他们可以为不止一张图片投票。然后在 removeVote 部分再次显示所有按钮。
关于javascript - jQuery 多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13779110/