仅在点击3个div时显示一个div的最佳方法是什么?
目前,我所做的工作,但我正在寻找一种更简单的方法 - 特别是如果有超过3个需要验证的div:
var div1Clicked= false;
$("#div1").click(function () {
div1Clicked = true;
validation();
});
var div2Clicked= false;
$("#div2").click(function () {
div2Clicked = true;
validation();
});
var div3Clicked= false;
$("#div3").click(function () {
div3Clicked = true;
validation();
});
function validation(){
if ((div1Clicked) && (div2Clicked) && (div3Clicked)) {
$("#showDiv").show();
} else {
$("#showDiv").hide();
}
}
答案 0 :(得分:1)
一种方法是使用一个类作为click函数的选择器,并指定单击了哪些div。例如,您可以为要检查的每个div添加clickable
类。然后,您可以为任何clickable
div创建一个通用单击函数,并在调用该函数后向该div添加clicked
类:
HTML:
<div id="div1" class="clickable"></div>
<div id="div2" class="clickable clicked"></div>
JS:
$(".clickable").click(function() {
$(this).addClass('clicked');
if ($(".clickable:not(.clicked)").length === 0) {
$('#showDiv').show();
}
});
如上所示,用于检查是否未点击任何可点击的div的jQuery是:
if ($(".clickable:not(.clicked)").length === 0)
您可以在此尝试:JS Fiddle
但是,有许多可能的解决方案。 希望有所帮助!