javascript自定义侦听器 - 何时加载元素

时间:2014-07-14 09:22:00

标签: javascript jquery listener

我有匿名函数,其中包含了所有javascript代码(main.js)。我将全局变量传递给函数内部之一。但问题是在加载main.js之后创建变量。我可以使用jQuery文档,但我不想等待整个文档加载。

main.js

(function(){
  function example(){
    alert(globalVariable)
  }
})();

之后加载的phtml文件
<script>var globalVariable = 'example'</script>

有没有办法创建自定义侦听器,何时创建自定义侦听器?类似的东西(仅作为展示我需要的例子):

main.js

(function(){
  listen(mycustomlistener){
    function example(){
      alert(globalVariable)
    }
  }
})();

phtml文件

<script>
var globalVariable = 'example'
create listener(mycustomlistener)
</script>

2 个答案:

答案 0 :(得分:0)

您期望的触发器在哪里?它是由您或事件或变更触发的吗?

如果是你正在寻找的听众/观察者设计。您可以实现自己的或使用backbone.wreqr

中提供的那个
  

http://zen-and-art-of-programming.blogspot.in/2013/12/backbonewreqr-jumpstart.html

同样来自上面的代码,即使你创建了一个监听器,你的示例函数也不会被调用,因为它只是一个内部的功能声明而不是调用,即make it

var eventAggregator = new Backbone.Wreqr.EventAggregator(); 


//Subscribe for the event! 
eventAggregator.on('eventName', function() { 
     (function example(){
         alert(globalVariable)
     })();            //observe the call i ve made here which is absent in urs!!!
}); 


//Raise the event! 
eventAggregator.trigger('eventName');

您还可以使用jquery observer和observable

  

https://gist.github.com/addyosmani/1321768

答案 1 :(得分:0)

这可以帮助你实现你想要的。 http://jsbin.com/mugage/1/edit?html,js,output