2011-08-04 112 views
2

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

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

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

,并在另一个我绑定到它:

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

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

我猜这是因为事件实际上是在消费者开始收听之前触发的。

在事件中创建“触发器”和“侦听器”时,是否有一个很好的做法 - 必须在页面加载和以后才能使用?

回答

0

使用类似RequireJS将让我第一次加载一个JavaScript文件,并然后另一个。

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

1

如果在触发事件时没有侦听器,则不会发生这种情况,这就是为什么在第一个触发器上没有看到任何事情。

+0

我明白,但你怎么能解决这个问题得到什么?我真的需要在页面加载时“抓住”事件。但我也需要在页面加载时触发它。这太疯狂了!!! – drozzy

+0

然后确保consumer.js加载之前producer.js – ShankarSangoli

+0

@drozzy - 如果我的答案有任何意义,请接受它谢谢。 – ShankarSangoli

0

听起来像是你需要控制的document.ready的顺序()调用..也许this questionthis article的回应可能会协助您

相关问题