jQuery Unslide - Touch不起作用

And*_*ock 9 javascript jquery slideshow touch responsive-design

我已经解决了这个问题,而且我只是发帖帮助别人节省一些时间.

我正在使用unslider用于商业网站,我正在做出响应的网站,因此为滑块添加触摸支持的功能很吸引人.不幸的是,正如作者声称的那样,它不能直接开箱即用.

And*_*ock 17

更新
我使用的unslider插件已经过时了.我从unslider.com下载它,我第一次找到它(它仍然是一个过时的版本),因此我遇到了困难.

如果您需要获取最新版本,请访问:https://github.com/idiot/unslider/

如果您想查看我的问题报告:https://github.com/idiot/unslider/issues/69


问题是作者在4个月内没有更新他的项目,从那时起,滑动事件已从$ .event.swipe移动到$ .event.special.swipe.

问题发生在unslider插件的第108行,它测试了滑动插件的存在.

108: if($.event.swipe) {
109:    this.el.on('swipeleft', _.prev).on('swiperight', _.next);
Run Code Online (Sandbox Code Playgroud)

只需将其更改为:

108: if($.event.special.swipe) {
109:    this.el.on('swipeleft', _.prev).on('swiperight', _.next);
Run Code Online (Sandbox Code Playgroud)

这是一个简单的解决方案,但需要谷歌搜索才能搞清楚.

如果您想确保它适用于早期版本,您可以这样做:

108: if($.event.special.swipe || $.event.special.swipe) {
109:    this.el.on('swipeleft', _.prev).on('swiperight', _.next);
Run Code Online (Sandbox Code Playgroud)

但我不建议这样做.

此外,作者没有提到这一点,但是滑动插件页面确实如此,除了脚本中的jquery.event.swipe之外,还需要包含jquery.event.move.

我希望这有助于某人:)


要回答以下评论:

请记住按正确的顺序包含所有文件,并记住所有文件:

<script type="text/javascript" src="/scripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="/scripts/jquery.event.move.js"></script>
<script type="text/javascript" src="/scripts/jquery.event.swipe.js"></script>
<script type="text/javascript" src="/scripts/unslider.min.js"></script>
Run Code Online (Sandbox Code Playgroud)