使用jquery或javascript在多次点击中显示div

时间:2015-07-13 10:53:42

标签: javascript jquery html5

仅在点击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();
    }
}

1 个答案:

答案 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

但是,有许多可能的解决方案。 希望有所帮助!