1
我試圖找回裏面另一個函數的結果,但總是得到未定義內訪問:函數結果不確定時,另一個函數
$(window).load(function() {
var isMobile = false;
function check_OS() {
if (/(iPhone|iPod|iPad)/i.test(navigator.userAgent)) {
isMobile = true;
}
}
check_OS();
$(window).resize(function() {
resizeImage();
});
function resizeImage() {
console.log(isMobile)
}
});
isMobile的該功能resizeImage內()的結果總是。未定義的,我不知道爲什麼:(
可以在這裏看到:
http://machinas.com/wip/hugoboss/responsive-template/test/
移動函數聲明和isMobile變量out window.load的。並嘗試避免原始大小調整功能,當你有更多的onResize事件時,它會滯後你的頁面,當有人調整瀏覽器窗口的大小時,用鼠標拖動它。使用延遲調整大小。也可用於('調整')/ on('load')。 – patrykf 2014-09-30 09:10:02
因爲'var isMobile = false;'是在另一個範圍內定義的,所以它在您嘗試訪問它的地方不可用。您的代碼與演示中的代碼不一樣。 – dfsq 2014-09-30 09:10:25
這就是javascript的工作原理。 isMobile只能通過$(window).load函數(){}訪問。 您可能想了解更多關於j [avascript closures](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Closures) – jao 2014-09-30 09:10:28