显示错误答案

时间:2012-10-09 09:39:15

标签: javascript jquery

我创建了一个拼写游戏,用户通过点击字母来拼写单词。要向用户显示他们有多少错误和正确,我会计算显示正确和错误消息的次数并将其打印给用户。

这适用于正确的答案,但不适用于错误的答案。有人可以告诉我为什么吗?

这是正确答案的脚本(工作正常)......

var completeLetters = $('.wordglow2').length;
var completeWords = (completeLetters / 3);

    if ($(right).show()) {
        $('.counter').html("Right Answers = " + completeWords).show();
    }

这是错误答案的答案(完全相同的逻辑,但不会起作用!)......

var incompleteLetters = $('.wordglow4').length;
var incompleteWords = (incompleteLetters / 3);

    if ($(wrong).show()) {
        $('.counter2').html("Wrong Answers = " + incompleteWords).show();
    }

所以基本上" wordglow4"是拼写错误时添加到字母中的样式" wordglow2"是添加到正确拼写字母的样式。

所有单词都是3个字母长,hense"(incompleteLetters / 3)"

这是帮助http://jsfiddle.net/smilburn/Dxxmh/34/

的小提琴

2 个答案:

答案 0 :(得分:2)

'完整单词'计数器有效,因为当单词完成时,您总是在表格单元格上留下'.wordglow2'样式。因此 $('。wordglow2')。length 将始终返回已完成的字母总数(以及因此而言)

然而,不正确的单词将无效,因为只要用户正确使用,样式就会更改(从'.wordglow4'变为'.wordglow2' - ps你可能想要考虑使用更具描述性的类名称 - 例如'.correctLetter'和'.wrongLetter')。因此,屏幕上永远不会有超过3个.wordglow4'字母,因此 incompleteWords 计数器永远不会超过1。

要使错误的单词计数器工作,您需要在函数外部声明计数器,并执行以下操作:

var incompleteLetters = $('.wordglow4').length;
incompleteWords += (incompleteLetters / 3);

然后应该跟踪以前的失败,并为您提供所需的行为

答案 1 :(得分:1)

只有一个错误的答案在电路板上由类.wordglow4的表格单元格指示,不像正确的答案维持{{ 1}}在他们被正确猜到之后的课程。

因此.wordglow2的计数始终是正确的,而.wordglow2的计数只会是3。

您应该将计数变量移到.wordglow4事件之外,并在猜错单词时将其递增。

因此,在您的示例代码中,添加...

.click()

并更改

var animation = false;
var incompleteWords = 0; // <-- this line
$('.drag').on('click', function(e) {

var incompleteWords = (incompleteLetters / 3);