当你点击这些div之外的任何地方时,这应该关闭数组中列出的所有div,但它不起作用。
如果我要点击不是div1,div2,div3,div4的任何地方,那么所有这些div应该关闭。
$(document).mouseup(function (e)
{
var container = $["#div1," "#div2", "#div3", "#div4"];
if (!container.is(e.target)
&& container.has(e.target).length === 0)
{
container.hide();
}
});
我可以在自己的脚本标签中使它适用于各个div,但是我必须多次重现这段代码,这不是很整洁。
$(document).mouseup(function (e)
{
var container = $("#div1");
if (!container.is(e.target)
&& container.has(e.target).length === 0)
{
container.hide();
}
});
$(document).mouseup(function (e)
{
var container = $("#div2");
if (!container.is(e.target)
&& container.has(e.target).length === 0)
{
container.hide();
}
});
$(document).mouseup(function (e)
{
var container = $("#div3");
if (!container.is(e.target)
&& container.has(e.target).length === 0)
{
container.hide();
}
});
$(document).mouseup(function (e)
{
var container = $("#div4");
if (!container.is(e.target)
&& container.has(e.target).length === 0)
{
container.hide();
}
});
将这些#divs分组的正确解决方案是什么?
答案 0 :(得分:2)
您的选择器错误 - 使用圆括号并将所有逗号分隔的ID放在引号之间,如下所示:
var container = $("#div1, #div2, #div3, #div4");
然后关于container
变量的所有函数都会影响所有这些元素。
答案 1 :(得分:0)
试试这个:
$(document).mouseup(function (e)
{
var container = ["#div1", "#div2", "#div3", "#div4"];
for(var i=0;i<container.length;i++)
{
if (!$(container[i]).is(e.target)
&& $(container[i]).has(e.target).length === 0)
{
$(container[i]).hide();
}
}
});
答案 2 :(得分:0)
你可以这样做。
JS:
{01-02-2016,02-02-2016,03-02-2016,04-02-2016,05-02-2016,06-02-2016,07-02-2016,08-02-2016,09-02-2016,10-02-2016}.
HTML:
$(document).not($("#div1, #div2, #div3, #div4")).on('click',function(){
$(".test").hide();
})