Javascript 创建/追加类时,计数器值增加1
创建一个系统,在提交每个错误答案时将“故障”计数器的值增加1。我通过让我的系统监听一个名为“incorrectResponse”的类的创建来做到这一点。然而,它似乎只是在页面完成加载后立即添加到计数器,并且在加载之后不会再添加任何值 这是我尝试过的代码,但它不起作用Javascript 创建/追加类时,计数器值增加1,javascript,jquery,html,css,Javascript,Jquery,Html,Css,创建一个系统,在提交每个错误答案时将“故障”计数器的值增加1。我通过让我的系统监听一个名为“incorrectResponse”的类的创建来做到这一点。然而,它似乎只是在页面完成加载后立即添加到计数器,并且在加载之后不会再添加任何值 这是我尝试过的代码,但它不起作用 //*-- Fault counter --*// if (document.querySelectorAll('incorrectResponse')) { $('#fault-counter').html(fun
//*-- Fault counter --*//
if (document.querySelectorAll('incorrectResponse')) {
$('#fault-counter').html(function(i, val) { return val*1+1 });
};
有什么原因可以解释这种情况吗?假设您正在使用jQuery(您在一条评论中提到了它),您可以做的一件事是将事件侦听器附加到“错误答案”的容器中 每当接收到错误答案/将错误答案附加到页面时,都会手动触发自定义事件,事件侦听器会对其作出反应,重新计算错误答案的数量并更新计数器
函数updateNumberOfIncorrectMsgs(){
$('.counter').text($('.incorrectAnswer').length);
}
updateNumberOfIncorrectMsgs();
变量$container=$('.ErrorAnswersContainer')
.on('newErrorAnswerAdded',function(){
updateNumberOfIncorrectMsgs();
});
//for和setTimeout仅用于模拟附加到页面的MSG,重要的部分是添加元素时触发的自定义事件。
对于(变量i=1;i<6;i++){
setTimeout(函数(){
$container
.append(“回答不正确
”)
.trigger(“新增错误应答”);
},1000*i);
}
回答不正确计数器:
我是通过让我的系统监听类的创建来做到这一点的——监听的代码在哪里?正如@Maximus指出的,你的事件侦听器在哪里?incorrecresponse
或。incorrecresponse
文档。querySelectorAll('incorrecresponse')
查找类似
的元素,而不是CSS类。见@PranavCBalan的评论。显然,如果您只在加载文档时运行该代码,那么它将只被调用。。。很抱歉,我一直在使用诸如getElementById和querySelectorAll之类的工具来查找ID和从附录/前缀创建的类。我不是最伟大的jQuery开发人员,所以我假设有更好的方法来实现这一点?这很好,我能够修改这段代码以获得我需要的结果。真的很感谢你在这一次陪我!向上投票!:)