2013-07-04 33 views
-2

我有一些代碼從一個網站使用Fine Uploder,並在即時通訊有一些問題得到它的工作。美好的上傳 - 沒有方法'上'

即時得到下面的錯誤在我的控制檯,即時通訊使用如下

Uncaught TypeError: Object [object Object] has no method 'on' 

代碼:

// Instantiate a Fine Uploader instance: 
    $("#manual-fine-uploader").fineUploader({ 
     autoUpload: false, 
     request: { 
      endpoint: "/uploads_bucket" 
     } 
    }).on("complete", function (event, id, name, response) { 
     submitForm.call(this); 
    }).on('statusChange', function (event, id, oldStatus, newStatus) { 
     if (newStatus === qq.status.CANCELLED) { 
      submitForm.call(this); 
     } 
    }); 

任何幫助將不勝感激。

乾杯,

+3

你使用jQuery 1.7或更高版本? –

+0

@Grimm - 使用1.6.4 – BigJobbies

+0

您需要更新 - on()僅在1.7中添加。如果你在你的代碼中的任何地方使用'live()',更新到小於V1.9的地方,因爲'live()'已經被移除。 –

回答

1

你真的應該使用一個當前版本的jQuery。 1.6.4很古老。如果您堅持使用1.7以前的版本,請使用bind而不是on。有人建議使用live,坦率地說,這裏沒有任何意義。請勿使用live。再次,在您的代碼中將on替換爲bind。最好的解決方案是簡單地使用當前版本的jQuery。

爲什麼不應該使用live?那麼,Fine Uploader在內部使用triggerHandler來觸發事件。由triggerHandler觸發的事件不會冒泡,因此,如果您使用live,因爲live總是將您的處理程序綁定到document,因此永遠不會觸發您的處理程序。