2012-07-19 64 views
0

我有一些非常簡單的代碼:jQuery的「未定義」基本顯示/隱藏代碼錯誤

var overlay = { 
    show: function() { 
     var width = $('#checkout-region').outerWidth(); 
     var height = $('#checkout-region').outerHeight(); 
     // Set vars and show 
     $('#checkout-processing').css({ 
      'height': height + 'px', 
      'width': width + 'px' 
     }).fadeIn(300); 
    }, 
    hide: function() { 
     $('#checkout-processing').fadeOut(300); 
    } 
} 

的,只允許我overlay.show();和overlay.hide();.當我嘗試在控制檯(Chrome)中運行它們時,我繼續得到一個(非常有用)'未定義'。一個簡單的console.log('ok');顯示功能在那裏,但我無法弄清楚這一個。

這可能是一些愚蠢的事情,但我睡眠不足,現在已經在這個項目上工作太久了。任何幫助是極大的讚賞。

+0

你期望*輸出是什麼?這些函數不返回一個值,因此'undefined'。 – 2012-07-19 13:57:36

+0

預期的結果是覆蓋(絕對定位的對象)顯示在內容上。 – Fluidbyte 2012-07-19 13:59:00

+0

在您的代碼中查找未定義的變量。例如,「process_overlay」未定義。 – Esailija 2012-07-19 14:00:29

回答

1

Undefined不是錯誤,它是一個返回值。

這些函數返回未定義,因爲它們沒有return something;行。

如果您試圖調試您的代碼,則應該console.log查詢結果以查看您的查詢是否返回了正確的元素。像這樣:

console.log($('#checkout-processing')); 

如果這個工作,元素應該是淡出。