2017-08-17 41 views
1

我有兩個jQuery的點擊功能,設置和從一個JavaScript對象檢索值。jQuery函數不能訪問全局變量

var poly; 

$(document).ready(function() { 
    //save drawing 
    $("#save").click(function() { 
     poly = new Polygon(); 
     poly.savedrawingaspoly(map.polygonevent); 
     poly.tract = tract; 
     poly.name = $('#polyname').val(); 
     console.log(poly); 
    }); 

    $("#btnClear").click(function() { 
     console.log(poly); 
     //poly.clearplot(); 
    }); 
}); 

console.log(poly);$("#save").click作品。 的$("#btnClear").click返回未定義。我如何傳播變量的範圍,所以第二個可以看到變量?謝謝。

+0

你之前保存點擊btnClear? –

+1

第二個這個,是保存之前點擊btnClear?否則,此代碼應工作... –

+0

寫這條線上面頂: VAR聚; poly = new Polygon(); – Dilip

回答

0

可以存儲並在#save jQuery對象的.data()訪問對象

$(document).ready(function() { 
    //save drawing 
    $("#save").click(function() { 
     $(this).data().poly = new Polygon(); 
     $(this).data().poly.savedrawingaspoly(map.polygonevent); 
     $(this).data().poly.tract = tract; 
     $(this).data().poly.name = $('#polyname').val(); 
     console.log($(this).data().poly); 
    }); 

    $("#btnClear").click(function() { 
     if ($("#save").data().poly !== undefined) { 
      $("#save").data().poly.clearplot(); 
     } else { 
      console.log($("#save").data()) 
     } 
    }); 
}); 
+0

@Barmar您最初的評論確實在'$(「#btnClear」)'處理程序迫使重新讀取應答,並注意那些失蹤'的事實$(「#拯救」)。數據()的方法'一部分。 – guest271314

0

定義如全球,並用它在整個事件和功能

$(document).ready(function() { 
    //save drawing 
    var poly = new Polygon(); 
    $("#save").click(function() { 
     poly.savedrawingaspoly(map.polygonevent); 
     poly.tract = tract; 
     poly.name = $('#polyname').val(); 
     console.log(poly); 
    }); 

    $("#btnClear").click(function() { 
     console.log(poly); 
     //poly.clearplot(); 
    }); 
}); 
0

使用窗口對象保持瀏覽器上下文中的變量。所以新代碼將如下所示:

$("#save").click(function() { 
     poly = new Polygon(); 
     poly.savedrawingaspoly(map.polygonevent); 
     poly.tract = tract; 
     poly.name = $('#polyname').val(); 
     console.log(poly); 

     window.poly = poly; 
}); 

執行上面提到的代碼後,您可以通過任何功能並通過瀏覽器控制檯訪問poly變量。