我希望能够跟踪多个div元素,并检查是否在其中一个div之外点击了。我想这样做而不使用 stopPropagation (因为它对其他页面元素有影响)和 event.target (因为它不适用于ie7和ie8)。< / p>
是否有其他解决方案可以检查是否点击了多个元素?
我要做的是:点击一个div,添加点击div一个类(活动),如果点击活动div之外//做某事 P.S:div是'nonActive&#39;上课是外面的......
到目前为止我做了什么..
$('.box').addClass('nonActive');
var activeBox = "";
$('.box').on("click",function() {
activeBox = $(this);
activeBox.addClass('active');
});
$(document).on("click", function() {
if(!activeBox.hasClass('active')){
activeBox.hide();
}else{
alert('active');
}
});
答案 0 :(得分:0)
我通过单击文档并单击并将目标上的'clicked'设置为true来实现此目的,因此当调用普通事件处理程序并对其进行冒泡时,我会检查此变量
jsfiddle:http://jsfiddle.net/hcwz4cgd/
var clickout = true,
mybox = $('#mybox, .anyselectoryouwish');
mybox.on("click",function() {
clickout = false;
console.log('box click');
mybox.removeClass('active');// remove class on all followed elements
$(this).addClass('active');// add class on active element
});
$(document).on("click", function() {
if(clickout){
console.log('clickout : ', mybox);
mybox.removeClass('active');// remove class on all followed elements
}
else clickout = true;
});
编辑 观看之前代码中的评论