2012-03-04 66 views
2

我寫了一個Object,它「管理」了一個<div> -Element。我希望它做的事情上鼠標移動,所以我寫了一個函數此行中我打電話來創建此 - 元素的內容:使用mousemove調用類函數時未定義EventObject

$('#' + this.slider_id).mousemove(this.mouseMoveHandler(e)); 

後來我定義它處理此事件的函數:

this.mouseMoveHandler = function (e) { 
    var mouseX = e.pageX; 
    .... 
} 

但是,當我把它,我得到的是:

Uncaught ReferenceError: e is not defined 

我缺少什麼?

+2

不要調用函數,而是傳遞一個函數引用:'$( '#' + this.slider_id).mousemove(this.mouseMoveHandler );' – 2012-03-04 22:03:49

回答

1

正如Rob提到的......你實際上調用了你的函數,並且有一些未知變量e。您應該傳遞一個對函數本身的引用,然後在事件發生時調用它,傳遞事件對象。

所以解決這一切,只是這樣做:

$('#' + this.slider_id).mousemove(this.mouseMoveHandler); 
+0

謝謝,但我有一個後續問題:我聲明瞭一些對象變量是這樣的: '$ .slider = function(){ \t this.pct = new Array();' 但是當我嘗試在我的mouseMoveHandler中調用它們,那些變量是未定義的。這個函數是否在另一個範圍中調用? – Tyde 2012-03-05 13:12:21

+0

找到解決方案: 我必須用'$ .proxy(this.mouseMoveHandler,this)調用'this.mouseMoveHandler'' – Tyde 2012-03-05 13:37:45