将函数传递给jquery窗口加载不起作用

时间:2016-10-03 14:09:29

标签: jquery events dom

function App(){
...
}
App.prototype.Initialize = function(){
    this.initMaps();
    this.rtspPlayer = new RTSPPlayer(); 
    this.rtspPlayer.initVXGVideoFeeds();
}

var app = new App();

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

这会出现此错误:

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

它不起作用吗?在匿名函数内调用函数作为.load()的参数也不起作用。永远不会调用Initialize()函数。

由于

2 个答案:

答案 0 :(得分:1)

已从jq 3.x中删除

load() load事件的简写,您需要使用:

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

否则,jQuery假设这个方法load()然后导致你在jq 3.1.1上面临的错误

答案 1 :(得分:0)

如果您在jQuery API中搜索class Object { virtual void print() = 0; }; class SingletonBase : public Object { private: static Object* theOnlyTrueInstance; protected: SingletonBase() { if(!theOnlyTrueInstance) theOnlyTrueInstance = this; } virtual ~SingletonBase(){} public: static Object* instance() { if (!theOnlyTrueInstance) initInstance(); return theOnlyTrueInstance; } void print() { cout<<"Singleton"<<endl; } static void initInstance() { new SingletonBase; } }; Object* SingletonBase::theOnlyTrueInstance = 0; class OtherBase : public Object { public: virtual string printSymbol() = 0; void print() { cout<<printSymbol(); } }; class SingletonChild : public SingletonBase , public OtherBase { public: string printSymbol() { return "Test"; } static void initInstance() { new SingletonChild; } }; int main() { SingletonChild::initInstance(); OtherBase* test = dynamic_cast<OtherBase*>(SingletonChild::instance()); test->print(); return 0; } ,您会发现两种完全不同的方法:

  • .load() - 从服务器加载数据并将返回的HTML放入匹配的元素中。

  • .load() - 将事件处理程序绑定到“加载”JavaScript事件。

你想要jQuery 3中不再存在的第二个:

  不推荐使用

版本:1.8,已删除:3.0

对于典型用例,您不需要等到启动脚本,直到所有资产都被加载(不知道您的情况如何),您可以做一些简单的事情:

.load()

这是$(app.Initialize); 的捷径。来自documentation

  

绑定DOM完成加载时要执行的函数。