Javascript 索引视图,jquery中的函数以错误的顺序运行
在我的MVC.NET视图中,我有3个javascript函数,它们以错误的顺序运行,而不是从上到下Javascript 索引视图,jquery中的函数以错误的顺序运行,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,在我的MVC.NET视图中,我有3个javascript函数,它们以错误的顺序运行,而不是从上到下 我们从我们的桌子上得到城市,然后推到一个阵列。此外,在我们使用URL+cit+key调用open weather map API的下一个函数中,也没有创建URL:s 使用新的URL:s调用open weather map以获取温度数据 打开的天气图中的天气数据应该放在信息窗口和内容中,以便稍后单击标记时打印 第二个函数每次都在第一个函数之前运行,我们尝试了很多不同的方法,但都没有效果。我们能做什么
URL+cit+key
调用open weather map 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>
@型号列表
@ViewData[“Listan”]
@ViewBag.message
函数myMap(){
var myCenter=newgoogle.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=[];
$(文档).ready(函数(){
var url='/People/myJson';
var url2=[];
var-url;
var数据;
var字符串=”;
var-lat=[];
var-lon=[];
var namn;
var i=1;
var-temp=[];
var description=[];
var-wIcon=[];
$(函数(){
$.getJSON(url、函数(数据){
$。每个(数据、函数(){
//城市[我]=这个[城市];
城市。推(这个[城市]);
url2.推送http://api.openweathermap.org/data/2.5/weather?q=“+this['City']+'&APPID=MYKEY”);
log(“Första loopen:+这个['City']);
i++;
});
console.log(“Hela listan med städer:“+cities+”
“+“Heeeeej”+url2+”
”);
});
警报(“Ska va etta”);
getCities();
});
函数getCities(){
$(函数(){
log(“Url 2 längd:+url2.length”);
对于(var i=1;i为什么要嵌套2个On Ready函数
$(document).ready(function () {
...
$(function () {
这是没有意义的,它不会起作用
在$(document).ready(function(){
您可以限制此函数的范围
除此之外,您还定义了整个$(document).ready
在'myMap()'函数中,这意味着您必须首先调用函数myMap来注册其他代码,以便在document ready下运行,这一点非常模糊,您为什么不这样定义呢
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 = [];
function getCities() {
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]);
})
});
}
}
$(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 = [];
$.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();
var i = 1;
$.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));
})
})
});
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=[];
函数getCities(){
log(“Url 2 längd:+url2.length”);
对于(var i=1;我可能重复:OMG您有一个文档。在函数中准备好了,在文档中准备好了。在函数中准备好了,难怪您的执行完全混乱。创建一个主文档。准备好了并将所有函数放在其中。文档只准备好一次。BTW$(document).ready(
与$(function(){
(后者是一种速记)是相同的东西这很有趣!现在我们把myMap放在顶部,在文档准备好之后,所有函数都没有jquery$,但是现在它说myMap不是一个函数。可能是关于底部的google maps键。键的末尾包含callback=myMap。