2013-02-28 36 views
0

我有一個函數isOverlap,它告訴兩個對象重疊,這裏是源代碼:重疊格式化

function isOverlap(idOne,idTwo){ 
    var objOne=$("#"+idOne), 
     objTwo=$("#"+idTwo), 
     offsetOne = objOne.offset(), 
     offsetTwo = objTwo.offset(), 
     topOne=offsetOne.top, 
     topTwo=offsetTwo.top, 
     leftOne=offsetOne.left, 
     leftTwo=offsetTwo.left, 
     widthOne = objOne.width(), 
     widthTwo = objTwo.width(), 
     heightOne = objOne.height(), 
     heightTwo = objTwo.height(); 
    var leftTop = leftTwo > leftOne && leftTwo < leftOne+widthOne 
      && topTwo > topOne && topTwo < topOne+heightOne, 
     rightTop = leftTwo+widthTwo > leftOne && leftTwo+widthTwo < leftOne+widthOne 
      && topTwo > topOne && topTwo < topOne+heightOne, 
     leftBottom = leftTwo > leftOne && leftTwo < leftOne+widthOne 
      && topTwo+heightTwo > topOne && topTwo+heightTwo < topOne+heightOne, 
     rightBottom = leftTwo+widthTwo > leftOne && leftTwo+widthTwo < leftOne+widthOne 
      && topTwo+heightTwo > topOne && topTwo+heightTwo < topOne+heightOne; 
    return leftTop || rightTop || leftBottom || rightBottom; 
} 

我需要的主要事情是如何格式化調用函數,任何幫助嗎?這是我在這樣的失敗嘗試:

if($(document).isOverlap("#mario", ".block")) { 
     $(".block").hide("explode", { pieces: 16 }, 100); 
    }); 

你可以找到我試圖讓here

回答

0

我發現,問題是,我根本就不需要的)當我試圖將.click線改爲.isOverlap

2
isOverlap("#mario", ".block") 

你傳遞給這個函數的字符串是完整的jQuery選擇方案。

因此,"#"+idOne裏面的函數變成"##mario",這顯然是錯誤的。

此外,如果其中任何一個選擇器匹配多個元素,您的代碼將無法正常工作。

+0

'isOverlap'是一個正常功能。你可以像調用其他函數一樣調用它:'isOverlap(...)'。你需要學習Javascript的基礎知識。 – SLaks 2013-03-01 17:37:34