2011-08-19 34 views
1

我有一個幻燈片插件,工作正常。單獨...如何殺死/重置正在運行的jquery插件?

我在一頁上有3個不同的按鈕。他們都調用相同的jQuery幻燈片插件,並將不同圖像的幻燈片加載到同一個divider中(id =「slideshow」)

我刪除幻燈片並從#slideshow中的元素每次加載新幻燈片與新的圖像。

這一切都會正常工作,除了我點擊按鈕的次數越多,整個事情就會變得越糟糕,因爲插件每次都打開,插件會混淆顯示哪些圖像。

我的問題是。我怎樣才能完全殺死一個正在運行的插件,以便新插件可以從頭開始加載。我試過empty(),die(),remove(),detach()API,但沒有成功。

有沒有其他辦法?

謝謝。

http://muttley.freewebspace.com/slideshow/

+0

這完全取決於插件的實現。您還應該調查在刪除*插件後留下哪些遺留物。 –

回答

0

這一切都取決於該插件。此插件是否支持頁面上的多個幻燈片?如果是這樣,而不是刪除#slideshow的內容,也許它會工作,你會用一個新的元素替代#slideshow本身。

3

不幸的是,如果插件本身不支持它,那麼在元素上銷燬插件是不常見的。您可能需要刪除實際稱爲插件的元素,然後再次創建它:

var oldDiv = $('#slideshow'); 
var parent = oldDiv.parent(); 
oldDiv.remove(); 
parent.append($('<div>').attr('id', 'slideshow')); 
// Initialize slideshow here again 

// Untested but shorter way: 
$('#slideshow').replaceWith($('<div>').attr('id', 'slideshow')); 
+0

謝謝你的回覆。與此同時,我設法讓它可以看到我在說什麼。 http://muttley.freewebspace.com/slideshow/ – muttley29

+0

我不能使用這個,因爲我從另一個文件加載圖像列表在div id =「slideshow」。如果你檢查這個網站和來源muttley.freewebspace.com/slideshow可以看到我在說什麼。我發現了一個奇怪的解決方案。我想如果我暫停幻燈片之前,我擊中另一個幻燈片按鈕,它工作正常。你認爲有可能以某種方式從插件調用stopAutoplay()? – muttley29

相關問題