2013-01-02 135 views
0

我製作了一個將很多小圖片拼接起來以形成一個大圖片的畫布。停止監聽或刪除Image()對象onload事件的事件

我已經寫了它來聽一個事件,這是一個單一的圖像對象加載,然後將其繪製到畫布中,加載下一個圖像後,將再次觸發事件,它會停止用戶指定的數量遞歸。

因此,在用戶指定的數字已達到,我想停止聽我的圖像對象的「加載」事件,如何讓我的圖像對象(這是「img」)停止監聽事件「加載」?

//調試這裏

網頁:https://dl.dropbox.com/u/2321732/stitch_images/index.html

的Javascript:https://dl.dropbox.com/u/2321732/stitch_images/script/main.js

//用於方便的編輯

JSBin:http://jsbin.com/acakif/1/

注:我怎麼知道該事件是仍然會

1.Go到Web檢查,JavaScript控制檯

2. img.src = "https://dl.dropbox.com/u/2321732/stitch_images/images/0_3.jpg"

3. 它不應該記錄 「的東西已經載入」

+0

打字路徑到localhost; ) 不管用。 – op1ekun

+0

我不明白,可以多描述一下嗎? –

+0

如果我想讓它運行在我的瀏覽器(在我的電腦上),沒有像這樣的路徑「file://localhost/Users/kentliau/Desktop/stitch_images/images/0_3.jpg」。 – op1ekun

回答

4

在你的代碼中,我看到:

img.addEventListener("load", drawStitch, true);

但是您刪除了這樣的聽衆:

img.removeEventListener("load", drawStitch);

簡單地說,如果你想刪除一個監聽你必須通過所有的參數,您傳遞給addEventListenerremoveEventListener

所以,在你的例子類似的東西:

img.removeEventListener("load", drawStitch, true);

我已經在Firefox/Firebug的和step.2測試它不再觸發事件:)

+0

他甚至不需要刪除eventlistener,看代碼。他想要的是停止加載圖像。 – Josep

+0

從我看到肯特想要防止事件的手動解僱。圖像停止加載在jsbin的例子... – op1ekun

+1

omg,它很簡單,你停止聽的事件,謝謝 –