2013-07-22 14 views
0

我正在构建PhoneGap应用程序,我想使用swipe.js - 这是一个“swipble”和自动动画轮播。正确的方式来'设置按需'和'重置'的jQuery插件,如swipe.js?

要设置它,你声明它是这样:

window.mySwipe = new Swipe(document.getElementById('slider'), {(这里参数)});

这是罚款,并做什么它应该。但是我只想根据需求进行设置。由于这是一种模式,因此在显示模式之前没有理由设置它,然后如果关闭,我希望它消失,因为没有任何理由在旋转木马不可见时通过旋转木马保持动画效果。 (虽然很轻微,但我认为这是一个性能打击有东西在屏幕上实际看不到的永久动画)

我的问题是:什么是正确的方式建立一个像这样的on-需求以及停用(销毁?)按需?

或者这是插件必须首先支持的功能吗?

UPDATE:

所以, '设置点播' 是很容易的。我可以简单地包裹在上面的函数,只在需要时调用该函数:

function setUpSwipe(){ 
    window.mySwipe = new Swipe(document.etc... 
} 

但我仍然sumped如何“毁”这之后我不再需要它。我已经试过“删除”:

function destroySwipe(){ 
    delete window.mySwipe; 
} 

,什么也不做(我假设,因为window.mySwipe不会暴露于该特定functon?)

我也试过对象,设置空变量:

function destroySwipe(){ 
    window.mySwipe = ""; 
} 

但这只是在黑暗中刺,所以没有指望它实际上工作。 :)

回答

1

查看source swipe.js支持kill方法,该方法可停止计时器并删除所有事件侦听器。

+0

谢谢,dc5!我想这个教会我深入研究源代码,并不总是相信文档是完整的。 :)所以,我想我广泛的问题的答案是“你可以'重置'插件,只要插件提供内部的能力。在这种情况下,'window.mySwipe.kill()'工作得很好。看起来,我应该可以使用'setup()'重新设置它,但这是行不通的。因此,在我kill()'I'delete window.mySwipe'后,然后当我再次需要它时,我只是调用我之前创建的'setUpSwipe()'。再次,谢谢! –

+1

它涉及到插件似乎有点混杂。似乎有人试图围绕销毁消息/方法进行标准化:[使用jQuery UI Widget Factory编写有状态插件](http://learn.jquery.com/plugins/stateful-plugins-with-widget-factory/ ),但它远不是无处不在,因为许多(如你使用的swipe.js库)提供了足够的包装器来使用jQuery。 – dc5

+0

是...'有状态'这是我一直在寻找的关键术语!当我评估插件时,这个信息肯定会对未来有所帮助。谢谢! –

0

我用swipe.kill()它工作完美。

相关问题