2014-02-18 64 views
1
$("#capture").click(
    function(event) { 
     var photoCoords = $("#doge1").position(); 
    }) 

我使用上面的方法獲取用戶單擊帶有#capture ID的捕獲按鈕後照片的座標。該圖片的ID爲#doge1。獲取undefined的jQuery位置變量

當我在控制檯中輸入var photoCoords時,我得到一個未定義的返回值。

+1

舉例說明rogue_js的回答:http://jsfiddle.net/marionebl/YvJhE/171/;)帶上一粒鹽。 – marionebl

回答

1

它是一個範圍的問題。該變量不能在匿名函數之外訪問。如果你只是想調試 - 你也可以把console.log語句放在匿名函數中。否則,您需要在您的日誌語句可訪問的範圍內聲明該變量。

$("#capture").click(
    function(event) { 
     var photoCoords = $("#doge1").position(); 
     console.log(photoCoords); 
}) 
2

這是因爲您的變量photoCoords位於您的點擊事件中的匿名函數的上下文中。嘗試聲明它是功能之外,你應該能夠訪問它

+0

嗯。這實際上打破了我的整個頁面。當我這樣做時,所有隱藏着jQuery的隱藏元素都可見。 – metersk

+0

嘗試了@datnguyen的建議,並且仍然沒有定義,如果這意味着我寫這個 – metersk

+1

這就是我的意思,基本上。你嘗試從函數內部進行記錄嗎?這會告訴你這是一個jQuery使用問題還是範圍問題。 –

3

你應該寫這樣的代碼如下:

var photoCoords;  
$("#capture").click(function(event) { 
    photoCoords = $("#doge1").position(); 
}); 
+0

仍未進入控制檯未定義 – metersk