流星助手添加适当的css一秒钟,然后消失
Meteor helper adds appropriate css for a brief second and then disappears
如果用户通过下面的{{checkAnswer}}帮助程序点击了正确答案或错误答案,我将尝试显示某个类:
<div class="question" {{attributes}}>
<a href="#" data-value=0 class="checkOne upvote btn {{checkAnswer}}">A</a>
{{answerOne}}
</div>
用户提交一个创建提交的答案,然后最终检查该用户提交的内容是否正确。如果用户提交是正确的,它应该显示btn成功,不正确的应该是btn危险,否则应该是btn-primary。
Template.questionItem.helpers({
checkAnswer: function() {
var user = Meteor.user();
var game = GameCollection.findOne({current: true});
var currentQuestion = game.currentQuestion;
var question = game.gameQuestions[currentQuestion];
var correctAnswer = question.correctAnswer;
var submission = Submissions.findOne({userId: user._id,
gameId: game && game._id,
currentQuestion: currentQuestion});
if (submission && submission.submission === correctAnswer) {
return 'btn-success';
} else if (submission) {
return 'btn-danger';
} else {
return 'btn-primary upvotable'
}
},
当我点击一个正确的提交时,它在几秒钟内从btn成功变为绿色(如果不正确,它在一秒钟内变为红色),但最终会进入btn初级。为什么它不停留在成功(或危险)?
上下文中的某些内容正在发生变化。Meteor数据上下文的构建方式使得您所做的所有"当前"检查都没有必要。相反,您可以使用this
访问当前的数据上下文,这将大大简化您的代码。
首先,我会在服务器端检查提交是否正确,然后将其存储为提交本身的属性。然后,您可以执行一个简单的if...then
来返回正确的引导程序类名。
这里有一个简单的例子:流星座
如果你想把JS文件快速地放到一个全新的项目中,这里有一个Gist。
您将注意到,在这两种情况下,您可以使用this._id
或this.correct
来访问正确/当前的数据上下文。希望这能帮助/让你走上正轨。
相关文章:
- JavaScript sweetAlert弹出窗口在一秒钟后自动关闭
- ng show和ng hide don'I don’我一秒钟都不工作
- 出现一秒钟然后显示为Javascript的消息
- Javascript单选按钮验证错误弹出不到一秒钟,但不应消失
- 如何使用javascript在一秒钟内做60次的事情
- 如何在函数执行前等待一秒钟
- 表单提交仅运行Javascript函数一秒钟
- Javascript:选择页面上的所有复选框.它会检查所有内容一秒钟,然后消失
- 下拉菜单不会显示超过一秒钟.不起作用
- 循环后暂停 css 精灵一秒钟
- .animate();在Javascript中是冻结一秒钟
- 如何在 jQuery 中阻止 keyup() 事件一秒钟
- 每五次迭代后暂停循环一秒钟
- 计算一秒钟内鼠标点击的次数
- 流星助手添加适当的css一秒钟,然后消失
- 在页面加载时,不是显示第一张幻灯片,而是显示最后一张幻灯片不到一秒钟
- 切换箭头键时,图像会停止一秒钟
- PHP输出将显示一秒钟
- 在缩略图上更改滑块图像.图像改变一秒钟,然后恢复
- JavaScript CSS的更改只是一秒钟