我有两个jquery点击函数,用于设置和检索javascript对象的值。
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
有效。 console.log(poly);
中的$("#btnClear").click
返回undefined。如何扩展变量的范围,所以第二个可以看到变量?感谢。
答案 0 :(得分:0)
您可以在.data()
jQuery对象
#save
存储和访问该对象
$( 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())
}
});
});
答案 1 :(得分: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();
});
});
答案 2 :(得分: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 变量。