首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像交换单击jquery,3个图像

图像交换单击jquery,3个图像
EN

Stack Overflow用户
提问于 2016-03-02 04:33:37
回答 2查看 35关注 0票数 0

到目前为止,我希望能够得到原始的图像并循环再循环两个图像,但是我不知道如何添加额外的图像。

代码语言:javascript
复制
  $('img').on({'click': function() {
    var src = ($(this).attr('src') === '1.png') // current image
        ? '2.png' 
       : '1.png';
   $(this).attr('src', src);

}});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-02 04:41:15

一个简单的解决方案是使用一个带有计数器变量的数组,然后在单击处理程序中循环它,如下所示

代码语言:javascript
复制
var images = ['//placehold.it/64/ff0000?text=1.png', '//placehold.it/64/00ff00?text=2.png', '//placehold.it/64/0000ff?text=3.png'],
  counter = 0;
$('img').on({
  'click': function() {
    counter = ++counter >= images.length ? 0 : counter;
    $(this).attr('src', images[counter]);
  }
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src="//placehold.it/64/ff0000?text=1.png" />

票数 0
EN

Stack Overflow用户

发布于 2016-03-02 04:55:33

为了避免污染全局命名空间,我将使用如下闭包。检查小提琴- 小提琴.

代码语言:javascript
复制
$('img').on('click', (function() {
    var arr = [ ... paths to your images];
    return function() {
        var current = arr.indexOf( this.src );
        current--;
        this.src = current > 0 ? arr[ current ] : arr[0];
   }
})() );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35738572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档