Jquery $(window).load与window.onload之间的区别

时间:2014-03-05 12:22:00

标签: javascript jquery

我有以下代码:

function initialize() {
  var mapOptions = {
    center: new google.maps.LatLng(53.743317, -0.331004),
    zoom: 12
  };
  var map = new google.maps.Map(document.getElementById("map-canvas"),  mapOptions);
}

function loadScript() {
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = 'https://maps.googleapis.com/maps/api/js?key={APIKEY}&sensor=false&callback=initialize';
  document.body.appendChild(script);
}

如果我把

$( window ).load(function() {
    loadScript;
});

它不会加载我的地​​图。谷歌地图中的错误js是Uncaught TypeError: Object #<Object> has no method 'Load'。但是,如果我使用

window.onload = loadScript;

它将加载它很好。我完全不知道为什么。

$(window).load(loadScript());

同样有效,只需将其作为调用它的函数即可。你能告诉我这种行为的原因吗?

3 个答案:

答案 0 :(得分:2)

您实际上未在loadScript版本中调用$(window).load() - 您刚刚创建了一个&#34; void&#34;表达式,用于计算对该函数的引用。

要么:

$(window).load(function() {
     loadScript();  // NB: parentheses
})

或:

$(window).load(loadScript);

那就是说,你可能想要$(document).ready()而不是$(window).load()

答案 1 :(得分:0)

你的jquery脚本中的

你没有调用loadScript方法...... 使用:

$( window ).load(function() {
    loadScript();
});

答案 2 :(得分:-1)

当所有DOM都准备好包括图像时,$(window).load执行。这意味着如果我们的网页已经完全加载包括图像,那么$(window).load函数将调用。

$(window).load(function(){

 // script

})

有关$(document).ready vs $(window)的更多细节.load vs window.onload点击

http://www.delhincrjob.com/blog/what-is-document-ready-vs-window-load-vs-window-onload/