Javascript 测验和jQuery的问题
我写了两张卡片的简单测验。用户单击卡片后,属性单击更改状态并检查答案Javascript 测验和jQuery的问题,javascript,jquery,Javascript,Jquery,我写了两张卡片的简单测验。用户单击卡片后,属性单击更改状态并检查答案 clicked = false; $(document).on("click", "#card1", function() { clicked = true; check answer........ }); 我得到了一个关于点击的事件,当用户点击body元素时,它应该加载下一个问题。 仅当卡被单击且单击状态为true时,此事件才有效 $(document).on("click", "body", function()
clicked = false;
$(document).on("click", "#card1", function() {
clicked = true;
check answer........
});
我得到了一个关于点击的事件,当用户点击body元素时,它应该加载下一个问题。
仅当卡被单击且单击状态为true时,此事件才有效
$(document).on("click", "body", function() {
if (clicked == true) {
quiz.nextQuestion();
clicked = false;
}
});
但这两个onclick事件同时启动和执行
我怎样才能防止这种情况发生?简单
clicked = false;
$(document).on("click", "#card1", function() {
clicked = true;
//check answer........
$(this).on("click", "body", function() {
if (clicked == true) {
quiz.nextQuestion();
clicked = false;
}
});
});
希望这有帮助….stopPropagation()代码>可用于此操作。否则,单击内部元素也将触发主体单击功能
还有一件事是,我们必须单击
,而不是
说明:防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知
clicked=false;
$(文档)。在(“单击”上,“卡片1”,功能(e){
e、 停止传播();
单击=真;
console.log(“点击卡片”);
});
$(文档)。在(“单击”,“html”,函数(e){
如果(单击==true){
log('click body');
单击=假;
}
});代码>
卡片1
您可以在检查答案后,将clicked的状态更改为true
$(document).on("click", "#card1", function() {
check answer........
clicked = true;
});
这将确保在触发click事件时clicked不会变为true,从而使代码第二部分中的if语句变为false
你甚至可以通过
clicked = 0;
$(document).on("click", "#card1", function() {
clicked = 1;
check answer........
});
$(document).on("click", "body", function() {
if (clicked == 2) {
quiz.nextQuestion();
clicked = 0;
}else
{
clicked +=1;
}
});
因为#card1
在
中。在单击“卡体”的同时,单击“也工作”可以提供一个(缩小到基本内容)工作范围片段吗
clicked = 0;
$(document).on("click", "#card1", function() {
clicked = 1;
check answer........
});
$(document).on("click", "body", function() {
if (clicked == 2) {
quiz.nextQuestion();
clicked = 0;
}else
{
clicked +=1;
}
});