2014-02-06 55 views
1

我有一个无限滚动类:事件监听器?

(function(){ 
"use strict"; 

var InfiniteScroll = function() { 
    this.init(); 
}; 

var p = InfiniteScroll.prototype = mc.BaseClass.extend(gd.BaseClass); 
p.BaseClass_init = p.init; 

/* 
* Public properties 
*/ 
p.loading = false; 

/* 
* Public methods 
*/ 
p.init = function() { 
    // Super 
    this.BaseClass_init(); 

    // Init 
    this.ready(); 

}; 

p.ready = function() { 

    this._initInfiniteScroll(); 

}; 

p._initInfiniteScroll = function() { 

    $(window).scroll(function(){ 
     if($(window).scrollTop() == $(document).height() - $(window).height()){ 

      if(!p.loading) 
      { 
       p.loading = true; 
       //send a message up to say loading 
      } 

     } 
    }); 

} 


mc.InfiniteScroll = InfiniteScroll; 
}(window)); 

现在,这是从另一个类的调用方式:

this.infiniteScroll = new mc.InfiniteScroll(); 

在其他类我想听听当滚动从那里我有解雇评论: //发一条消息说装载

我只是想知道我该如何去解决这个问题,我熟悉AS3中的事件监听器,但有人能指出我正确的方向为js吗?

+0

我的观点是@ Fletcher91说的 –

回答

1

您可以在您的类中实现一个自定义事件处理程序,您可以在其中添加其他类中的侦听器函数,如this post

,你会在你的_initInfiniteScroll功能使用像:

//send a message up to say loading 
this.fire({ type: "ContentLoadingEvent" }); 

虽然,如在后建议,为您InfiniteScroll事件创建一个单独的类是更好的。