jQuery触发器并在页面加载时绑定到事件?

时间:2011-08-04 15:18:11

标签: javascript jquery javascript-events

如何在页面加载后触发并绑定事件?

我遇到的问题是,在一个地方,在页面加载时我会触发一个事件:

//producer.js
pageLoaded(){
   var e = jQuery.Event("eventA");
   $("body").trigger(e);
   ...}

在另一个我绑定它:

//consumer.js
pageLoaded(){
   $("body").bind("eventA", function(args){console.log("Got it!");} );
   ... }

问题是第一次触发事件(加载页面时) - 消费者看不到它。然而,第二次事件被解雇了,一切都很好!

我猜这是因为事件在消费者开始收听之前就被解雇了。

在为事件创建“触发器”和“侦听器”时是否有良好的做法 - 必须在页面加载和以后工作?

3 个答案:

答案 0 :(得分:1)

如果在您触发事件时没有听众,则不会发生任何事情,这就是您在第一次触发时没有看到任何内容的原因。

答案 1 :(得分:0)

听起来你需要控制document.ready()调用的顺序..也许对this questionthis article的回复可能对你有帮助

答案 2 :(得分:0)

使用类似RequireJS的内容,我可以先加载一个javascript文件,然后再加载另一个。

所以我可以producer.js依赖于consumer.js