2014-02-06 331 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事件創建一個單獨的類是更好的。