我在<head>
中有以下代码,其中包含需要获取的变量(emp.longitude
和emp.longitude
)
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
async: false,
url: 'GetRecords.asmx/GetValues',
dataType: "json",
method: 'post',
success: function (data) {
var employeeTable = $('#tblEmployee tbody');
employeeTable.empty();
$(data).each(function (index, emp) {
employeeTable.append('</td><td>'
+ emp.latitude + '</td><td>' + emp.longitude + '</td><td>');
});
},
error: function (err) {
alert(err +" fail");
}
});
});
</script>
在<body>
中,还有另一个脚本需要在其中使用这些变量:
<script>
var mymap = L.map('mapid').setView([38.8, -94.8], 5);
// need to use them below (longitude and latitude)
L.marker([longitude,latitude], { icon: truckIcon }).addTo(mymap).bindPopup("I am here!");
var popup = L.popup();
function onMapClick(e) {
popup
.setLatLng(e.latlng)
.setContent("You clicked the map at " + e.latlng.toString())
.openOn(mymap);
}
mymap.on('click', onMapClick);
</script>
我已经有一个表格,可以在<body>
<form id="form1" runat="server">
<div class="container">
<h3 class="text-uppercase text-center">How to retrive data using ajax in asp.net</h3>
<table id="tblEmployee" class="table table-bordered">
<thead class="bg-primary text-white">
<tr>
<th>latitude</th>
<th>longitude</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</form>
任何想法都如何让我从头脑中的函数中获取这些变量,并在身体的另一个脚本中使用它们。谢谢。
答案 0 :(得分:2)
您只需将它们放置在两个代码部分均可访问的位置。
较高的范围是全局范围。如果您仅在$(document).ready(function ()
上方放置2个变量,则可以在代码的后面部分访问它们。
但这是不满意的。污染全局范围绝不是一个好习惯,因为可能会干扰其他可能运行的js代码。
正确的方法是找到两个部分都可以访问的方便对象。最明显的答案是document
对象。
只要
document.latitute = emp.latitude;
document.longitude = emp.longitude;
甚至更好
document.myProject = { lat: emp.latitude, lon: emp.longitude};
在代码的成功部分中,该vars将在以后的部分中访问。 您还可以使用任何DOM的节点来存储和访问变量。
答案 1 :(得分:-2)
将值分配给var,它们将被吊起。
var latitude = 0;
var longitude = 0;
后来在获取中,
latitude = emp.latitude;
longitude = emp.longtitude;
如果不这样做,则必须按照注释中的说明进行操作,并创建一个特殊的函数来获取值。您可以在这里使用吊装,并且只要不做很多事情,就可以了,而不会污染名称空间。