Ich möchte überprüfen, ob einige Divs überlagern. Hier sind die Funktionen ich verwendeÜberprüfen Sie Overlay für viele divs Problem
function collision($div1, $div2) {
var x1 = $div1.offset().left;
var y1 = $div1.offset().top;
var h1 = $div1.outerHeight(true);
var w1 = $div1.outerWidth(true);
var b1 = y1 + h1;
var r1 = x1 + w1;
var x2 = $div2.offset().left;
var y2 = $div2.offset().top;
var h2 = $div2.outerHeight(true);
var w2 = $div2.outerWidth(true);
var b2 = y2 + h2;
var r2 = x2 + w2;
if (b1 < y2 || y1 > b2 || r1 < x2 || x1 > r2)
return false;
return true;
}
$("#flex[data-item-id]").each(function() {
var id_item = $(this).data('item-id');
var status = collision($('#c + id_item), $("#r" + id_item));
if (status) {
$('.here').css('background-color', 'red');
}
});
Ich weiß nicht, warum, aber in der Konsole setzte ok wahr und falsch ... genau, wo es braucht, aber die if(status)
nicht so gut funktionieren ..
Sie von der Syntax sehen in der Frage hervorheben, die Sie verpasst haben ein ' '' in Ihrem Selektor –