如何杀死/重置正在运行的jquery插件?

时间:2011-08-19 14:11:05

标签: jquery jquery-plugins

我有一个幻灯片插件,工作正常。独自......

我在一个页面上有3个不同的按钮。他们都调用相同的jQuery幻灯片插件并将带有不同图像的幻灯片加载到同一个分隔符中(id =“slideshow”)

在我使用新图片加载新幻灯片之前,我每次都会从#slideshow中删除幻灯片及其元素。

这一切都会正常工作,除了我点击按钮的次数越多,整个事情就会越来越多,因为插件每次都会被打开,插件会混淆哪些图像显示出来。

我的问题是。如何完全杀死正在运行的插件,以便新的插件可以从头开始加载。我尝试了empty(),die(),remove(),detach()API而没有成功。

还有其他方法吗?

感谢。

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

2 个答案:

答案 0 :(得分: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'));

答案 1 :(得分:0)

这一切都取决于插件。此插件是否支持页面上的多个幻灯片?如果是这样,那么您可以使用新元素替换#slideshow本身,而不是删除#slideshow的内容。