countCorrect
中,我尝试根据用户点击类count
is-correct
count
的值传递给第二个函数changeTotalCorrect
,以便更新页面上的HTML count
值为0时,我希望整数在1-10之间。function countCorrect() {
var count = 0;
$(".is-correct").on("click", function(){
count = count++;
console.log("Answer is correct.");
console.log(count); // Expect an integer from 1-10
});
return count;
}
function changeTotalCorrect(func) {
var count = countCorrect(); // Expect an integer from 1-10
$(".highlight").html(count); // Change the HTML to reflect the new number
}
changeTotalCorrect();
<div class="buttons">
<button class="btn btn--option btn--one is-correct">${{ content.price_correct|int }}</button>
<button class="btn btn--option btn--two">${{ content.price_incorrect_one|int }}</button>
<button class="btn btn--option btn--three">${{ content.price_incorrect_two|int }}</button>
<button class="btn btn--option btn--four">${{ content.price_incorrect_three|int }}</button>
</div>
答案 0 :(得分:3)
您必须将点击侦听器放在函数之外,如下所示:
var count = 0;
$(".is-correct").on("click", function(){
count++;
console.log("Answer is correct.");
console.log(count); // Expect an integer from 1-10
changeTotalCorrect();
});
function changeTotalCorrect(func) {
$(".highlight").html(count); // Change the HTML to reflect the new number
}
changeTotalCorrect();
var count = 0;
$(".is-correct").on("click", function(){
count++;
console.log("Answer is correct.");
console.log(count); // Expect an integer from 1-10
changeTotalCorrect();
});
function changeTotalCorrect(func) {
$(".highlight").html(count); // Change the HTML to reflect the new number
}
changeTotalCorrect();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="buttons">
<button class="btn btn--option btn--one is-correct">${{ content.price_correct|int }}</button>
<button class="btn btn--option btn--two">${{ content.price_incorrect_one|int }}</button>
<button class="btn btn--option btn--three">${{ content.price_incorrect_two|int }}</button>
<button class="btn btn--option btn--four">${{ content.price_incorrect_three|int }}</button>
</div>
答案 1 :(得分:0)
您可以使用jQuery
https://jsfiddle.net/jeogdzh7/
var cnt = 0;
$('button').each(function(){
$(this).attr('cnt', cnt);
})
$('button').click(function(){
if($(this).hasClass('is-correct')){
$(this).html( "Count " + (parseInt($(this).attr('cnt')) + 1 ));
$(this).attr('cnt', (parseInt($(this).attr('cnt')) + 1));
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="buttons">
<button class="btn btn--option btn--one is-correct">Count 0</button>
<button class="btn btn--option btn--two">Count 0</button>
<button class="btn btn--option btn--three">Count 0</button>
<button class="btn btn--option btn--four">Count 0</button>
</div>
我正在使用attribute
来存储click
的计数。
.hasClass
用于检查button
中的班级。
我没有使用两个单独的函数来更新计数,而是使用click
函数内部完成的。
更新代码
$('button').click(function(){
if($(this).hasClass('is-correct')){
$(this)
.attr('cnt', (parseInt($(this).attr('cnt')) + 1))
.html( "Count " + $(this).attr('cnt'));
}
});
希望这会对你有所帮助。
答案 2 :(得分:0)
问题是
count = count++;
应该是:
count++;
在变量工作之后使用++
运算符,通过计算当前值(在这种情况下为0)和然后递增存储在变量中的值。它是您错误地分配给变量的评估值(0)。