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

如何杀死/重置正在运行的jquery插件?,jquery,jquery-plugins,Jquery,Jquery Plugins,我有一个幻灯片插件,它工作得很好。独自一人 我在一个页面上有3个不同的按钮。它们都调用同一个jQuery幻灯片放映插件,并将带有不同图像的幻灯片放映加载到同一个分割器中(id=“slideshow”) 每次在加载带有新图像的新幻灯片之前,我都会从#幻灯片中删除幻灯片及其元素 这一切都可以正常工作,只是我点击按钮的次数越多,整个事情就会变得越混乱,因为插件每次都被打开,插件会对显示哪些图像感到困惑 我的问题是。我怎样才能完全杀死一个正在运行的插件,这样新插件就可以从头开始加载。我尝试了empty(

我有一个幻灯片插件,它工作得很好。独自一人

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

每次在加载带有新图像的新幻灯片之前,我都会从#幻灯片中删除幻灯片及其元素

这一切都可以正常工作,只是我点击按钮的次数越多,整个事情就会变得越混乱,因为插件每次都被打开,插件会对显示哪些图像感到困惑

我的问题是。我怎样才能完全杀死一个正在运行的插件,这样新插件就可以从头开始加载。我尝试了empty()、die()、remove()、detach()API,但没有成功

还有别的办法吗

谢谢


这一切都取决于插件。这个插件支持一个页面上的多个幻灯片吗?如果是这样的话,与其删除
#slideshow
的内容,不如用新元素替换
#slideshow
本身。不幸的是,如果插件本身不支持它,没有一种常见的方法来销毁元素上的插件。您可能需要删除实际调用插件的元素,然后重新创建它:

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'));
var oldDiv=$(“#幻灯片放映”);
var parent=oldDiv.parent();
oldDiv.remove();
parent.append($('').attr('id','slideshow');
//再次在此处初始化幻灯片放映
//未经测试但较短的方式:
$('#幻灯片放映')。替换为($('.attr('id','slideshow'));

这完全取决于插件的实现。您还应该调查删除插件后剩下的内容。谢谢您的回复。与此同时,我设法把它戴上,这样就可以看出我在说什么。我无法使用此选项,因为我从div id=“slideshow”中的另一个文件加载图像列表。如果你查看这个网站和muttley.freewebspace.com/slideshow的来源,你就会知道我在说什么。我找到了一个奇怪的解决办法。我想如果我在按下另一个幻灯片按钮之前暂停幻灯片放映,效果会很好。您认为可以从插件中调用stopAutoplay()吗?