2014-09-30 85 views
-2

我在下面有功能isRetina,我試圖訪問另一個resizeImage()內的結果,但是變量retinaCheck總是讓我回到未定義狀態。我在開始時聲明瞭全局變量,爲什麼會這樣呢?在另一個函數中訪問函數結果

$(window).load(function() { 
    function isRetina() { 
     return ((window.matchMedia && (window.matchMedia('only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx), only screen and (min-resolution: 75.6dpcm)').matches || window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2)').matches)) || (window.devicePixelRatio && window.devicePixelRatio > 2)) && /(iPad|iPhone|iPod)/g.test(navigator.userAgent); 
    } 

    var retinaCheck = isRetina(); 

}); 

function resizeImage() { 
    if ($(window).width() > 649) { 
     console.log("resize:" + retinaCheck) 

    } 
}); 
+1

顯示完整的代碼。 – Cheery 2014-09-30 07:18:50

+0

工作正常:http://jsfiddle.net/rx0khzp0/1/ – DhruvPathak 2014-09-30 07:20:27

+0

尋求調試幫助(「爲什麼不是這個代碼工作?」)的問題必須包括所需的行爲,特定的問題或錯誤**和最短的代碼有必要在問題本身**中重現它。如果沒有能夠重現問題的代碼(您的代碼不會這樣做 - 在snipper中嘗試) - 我們無法爲您提供幫助。 – 2014-09-30 07:20:33

回答

0

你可以聲明全局變量之外window.load和值分配給它裏面window.load。當您撥打resizeImage()功能時,您可以閱讀視網膜檢查值。

var retinaCheck; 
$(window).load(function() { 
    function isRetina(){ 
     return ((window.matchMedia && (window.matchMedia('only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx), only screen and (min-resolution: 75.6dpcm)').matches || window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2)').matches)) || (window.devicePixelRatio && window.devicePixelRatio > 2)) && /(iPad|iPhone|iPod)/g.test(navigator.userAgent); 
    } 

    retinaCheck = isRetina(); 

}); 

function resizeImage() { 
    if ($(window).width() > 649) {   
      console.log("resize:"+retinaCheck)    
     }); 
} 
+1

他已經將retinaCheck定義爲全局變量。 – DhruvPathak 2014-09-30 07:20:44

+0

這會如何改變?即使有這種情況解決了這個問題 - 提供這個答案沒有任何上下文不是很有幫助 - 請考慮擴展它。 – 2014-09-30 07:21:29

+0

更新了我的回答 – 2014-09-30 07:23:38

相關問題