2016-10-03 68 views
0
function App(){ 
... 
} 
App.prototype.Initialize = function(){ 
    this.initMaps(); 
    this.rtspPlayer = new RTSPPlayer(); 
    this.rtspPlayer.initVXGVideoFeeds(); 
} 

var app = new App(); 

$(window).load( app.Initialize); 

這給出了這樣的錯誤:傳遞到jQuery的窗口負載功能不起作用

jquery-3.1.1.min.js:4 Uncaught TypeError: a.indexOf is not a function 

Shoudn't它work¿?調用匿名函數中的函數作爲.load()的參數也不起作用。 Initialize()函數永遠不會被調用。

感謝

+1

你能否提供更多的代碼?問題不在您提供的代碼中。它可能不是函數的錯,但它裏面有*什麼。 – Li357

+0

代碼中沒有'a' var可見。什麼是'a'? – Ted

+0

a是jQuery中的一個變量。當Initialzie函數從未被調用時,其他代碼不可能成爲問題。 – mikepa88

回答

1

load()速記load事件已經從JQ 3.x中刪除,你需要使用:

$(window).on("load", app.Initialize); 

否則,jQuery的是假設這種方法,load()然後導致你錯誤面向jq 3.1.1

+0

就是這樣。謝謝。當我使用stackoverflow時,我會將其標記爲正確的答案。 – mikepa88

0

如果您在jQuery API中搜索​​,您會發現兩種完全不同的方法:

  • .load() - 從服務器加載數據並將返回的HTML放入匹配的元素中。

  • .load() - 將事件處理程序綁定到「加載」JavaScript事件。

你想在jQuery的3不再存在第二個:

version deprecated: 1.8, removed: 3.0

對於典型的使用情況下,你不需要等待啓動腳本,直到將所有資產被加載(無想法,如果這是你的情況),你可以做簡單的東西:

$(app.Initialize); 

這是一個快捷的$(document).ready()。來自documentation

Binds a function to be executed when the DOM has finished loading.