我有一个div("#basket"
),它应该捕获具有相同类的许多元素(".food"
)
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;
var value = Number(($div1).attr("data-value"));
$("#counter").html(parseInt($("#counter").html()) + value);
function getsmall() {
$div1.remove();
//$div1.stop().animate({width: "0px",height:"0px"}, 200, function(){});
}
getsmall();
}
window.setInterval(function() {
var basket = $('#basket');
var food_1 = ('#food_1'); // classname .food
var food_2 = ('#food_2'); // classname .food
collision($(food_1), $(basket));
collision($(food_2), $(basket));
}, 200);
如果我使用每个元素的ids
,那么将会有超过20个.food,我不想写那么多代码。
该函数适用于两个独特元素(两个ID),但不是一个具有id的元素和多于20个仅具有类名的元素。
如何对collision
以及类名为#basket
的多个元素执行函数.food
?
答案 0 :(得分:1)
您可以使用each
函数,它遍历jQuery对象中的所有元素:
window.setInterval(function(){
var basket = $('#basket');
var food = $('.food');
// Here comes the magic
food.each(function(){
collision($(this), $(basket));
});
}, 200);
答案 1 :(得分:0)
Insert into KLG_TRN_SCE..dbBatchRequest values
('1'
, '603761193'
, 'Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
~~PL/SQL Release 11.2.0.4.0 - Production
~~CORE 11.2.0.4.0 Production
~~TNS for Linux: Version 11.2.0.4.0 - Production
~~NLSRTL Version 11.2.0.4.0 - Production'
, 'Three'
, 1
, 1234
, 'Error_txt'
, 'AddName'
, to_date('14-DEC-16','DD-MON-YY'))
第一行存储了一系列元素(如数组),这些元素在可变食物中具有类食物。现在你可以循环播放(forEach)并为每个篮子食物组合调用你的碰撞函数。