2016-10-08 72 views
0

我正在爲幼兒園的兒童進行學校項目。 必須拖動一個img到一個特定的間隙,我正在用offset * *計算它的位置,因爲這個洞是背景圖像的一部分,我知道這是不切實際的,但是我得到了這個項目。在Jquery或重複代碼中傳遞列表作爲參數

但在jQuery的功能不是我想運行此類型的參數:

Var fruits = ['.el1', '.el2', '.el3', '.el4'] 

只有我正在服用的列表的第一個元素的功能參數。 這是我的代碼: HTML:

<div class="element" style="list-style:none"> 
         <li><img src="img-d/cascara de banana-01.png" class="banana2 el1"  id="" alt=""></li> 
         <li><img src="img-d/cascara de huevo-01.png" class="huevo2 el2"   id="" alt=""></li> 
         <li><img src="img-d/hojas secas-01.png" class="hojas2 el3"     id="" alt=""></li> 
         <li><img src="img-d/manzana-01.png" class="manzana2 el4"      id="" alt=""></li> 
        </div> 

的Jquery:

var fruits = ['.el1', '.el2', '.el3', '.el4']; 
$(document).on('ready', function(){ 
       $(fruits[0],fruits[1],fruits[2],fruits[03]).click(function() { 

        var top_left1 = $(fruits[0]).offset(); 
        var top_left2 = $(fruits[1]).offset(); 
        var top_left3 = $(fruits[2]).offset(); 
        var top_left4 = $(fruits[3]).offset(); 

        if (top_left1.top >=230 && top_left1.top <=330 && (top_left.left1 >=620 && top_left.left1 <=700)) { 
         console.log('Bravo!') 
         } 
       }); 

       $(fruits[0],fruits[1],fruits[2],fruits[03]).draggable(); 



     }); 

但寫你可以拖動 這個$(fruits[0]).draggable();$(fruits[0]).click(function()$(fruits[0]).draggable();第一形象,但我需要將所有的圖像,並評估其抵消,瞭解每個位置。

回答

1

$(fruits[0],fruits[1],fruits[2],fruits[03])正在創造大量的參數,當你只想要一個是一個字符串

嘗試

$(fruits.join()).click...// OR .draggable 

另一種更有效的方式是:

var $fruits = $('.el1, '.el2, '.el3, .el4').click(function() { 

    var top_left1 = $fruits.eq(0).offset(); 
    var top_left2 = $fruits.eq(1).offset(); 
    var top_left3 = $fruits.eq(2).offset(); 
    var top_left4 = $fruits.eq(3).offset(); 

    if (top_left1.top >= 230 && top_left1.top <= 330 && (top_left.left1 >= 620 && top_left.left1 <= 700)) { 
    console.log('Bravo!') 
    } 
}).draggable(); 

而且做起來,你的最後方式然後可以使用一個類或parent > child關係選擇器來用於所有水果元素