与多个元素碰撞(每个函数?)

时间:2016-12-14 13:58:16

标签: javascript jquery collision-detection

我有一个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

2 个答案:

答案 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)并为每个篮子食物组合调用你的碰撞函数。