我在MVC.NET视图中的javascript中有3个函数,它们以错误的顺序运行,而不是从顶部到底部。
我们从表中获取城市并推送到数组。此外,我们还没有使用url+cit+key
调用开放天气图API的下一个函数创建URL:
使用新网址调用开放天气图:s以获取温度数据。
来自开放天气图的天气数据应该放在信息窗口和内容中,以便稍后在点击标记时打印。
第二个函数每次都在第一个函数之前运行,我们尝试了很多不同的东西,但没有任何工作。我们能做什么?
@model List<IDAbroad.Models.PeopleModell>
@ViewData["Listan"]
@ViewBag.message
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<div id="map" style="width:100%;height:600px"></div>
<script>
function myMap() {
var myCenter = new google.maps.LatLng(51.508742, -0.120850);
var mapOptions = { center: myCenter, zoom: 2 };
var mapCanvas = document.getElementById("map");
var map = new google.maps.Map(mapCanvas, mapOptions);
var cities = [];
$(document).ready(function () {
var url = '/People/myJson';
var url2 = [];
var url;
var data;
var string = "";
var lat = [];
var lon = [];
var namn;
var i = 1;
var temp = [];
var description = [];
var wIcon = [];
$(function () {
$.getJSON(url, function (data) {
$.each(data, function () {
//cities[i] = this['City'];
cities.push(this['City']);
url2.push('http://api.openweathermap.org/data/2.5/weather?q=' + this['City'] + '&APPID=MYKEY');
console.log("Första loopen: " + this['City']);
i++;
});
console.log("Hela listan med städer: " + cities + '<br>' + " HEEEEEEEEJ" + url2 + '<br>');
});
alert("Ska va etta");
getCities();
});
function getCities() {
$(function () {
console.log("Url 2 längd: " + url2.length);
for (var i = 1; i <= url2.length; i++) {
alert("kom in");
var url3 = url2[i]
$.getJSON(url3, function (data) {
$.each(data, function () {
temp[i] = this['main.temp'];
description[i] = this['description'];
wIcon[i] = this['icon'];
console.log("temperatur: " + temp[i]);
})
});
}
});
};
var i = 1;
$(function () {
$.getJSON(url, function (data) {
$.each(data, function () {
namn = this['Firstname'];
console.log("Position X: " + lat[i]);
console.log("Position Y: " + lon[i]);
var peoplePosition = new google.maps.LatLng(this['Latitude'], this['Longitude']);
var ico = {
url: "/profileImg/" + i + ".jpg",
scaledSize: new google.maps.Size(35,50)
}
var marker = new google.maps.Marker({
position: peoplePosition,
icon: ico
})
i++;
marker.setMap(map);
var content = this['Firstname'] + '<br>Stad: ' + this['City'] + '<br>Temp: ' + temp[i] + '<br>' + description[i];
var infowindow = new google.maps.InfoWindow()
google.maps.event.addListener(marker, 'click', (function (marker, content, infowindow) {
return function () {
infowindow.setContent(content);
infowindow.open(map, marker);
};
i++
})(marker,content,infowindow));
})
})
});
});
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=MYSECONDKEY">
</script>
答案 0 :(得分:0)
为什么你有2个就绪功能嵌套
<div class="box"><span class="box_text">0</span></div>
这意味着更少,它不会起作用
当你定义“getCities”时,另一件事就是&#39;$(document).ready(function () {
...
$(function () {
内的功能更重要的是,您已经在{myMap()&#39;中定义了整个$(document).ready(function () {
。这意味着你必须首先调用函数myMap来注册你的其他代码才能在Document ready上运行,这真的很模糊,为什么你不能这样定义这样的东西
$(document).ready