javascript - 仅定位此轮播,同一页面上有多个轮播

标签 javascript jquery carousel

使用下面的代码,我的页面上有一个基本的轮播两次

$('.next').bind('click', function() {
    $('.current').removeClass('current').hide().next().show().addClass('current');
    if ($('.current').hasClass('last')) {
         $('.next').attr('disabled', true);
    }
    $('.prev').attr('disabled', null);
});

$('.prev').bind('click', function() {
    $('.current').removeClass('current').hide().prev().show().addClass('current');
    if ($('.current').hasClass('first')) {
        $('.prev').attr('disabled', true);
    }
    $('.next').attr('disabled', null);
});

这是 html

<div class="shareBox">
<p class="highlight">
    <button class="prev linkBtn" disabled="disabled">Prev</button>
    <button class="next linkBtn">Next</button>
</p>
<div class="mask">
    <ul class="shareBoxList slides">

        <li class="item">

        </li>


        <li class="item">

        </li>

        </ul>
</div>

我只想定位我正在点击的那个,但不确定在函数中的何处添加 jquery this。

谢谢

周六

最佳答案

没有 HTML,这很难,但逻辑如下:

$('.next').bind('click', function() {
    var curCarouselNode = $(this).closest('.shareBox');
    curCarouselNode.find('.current').removeClass('current').hide().next().show().addClass('current');
    if (curCarouselNode.find('.current').hasClass('last')) {
         curCarouselNode.find('.next').attr('disabled', true);
    }
    curCarouselNode.find('.prev').attr('disabled', null);
});

所以我们要做的就是获取被点击项目的最高轮播元素。然后用它来查找您想要与之交互的元素。

关于javascript - 仅定位此轮播,同一页面上有多个轮播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19711747/

相关文章:

javascript - HTML 中的自定义自关闭/未配对标签?

javascript - 使用原生 Javascript 获取 id(或类)之前和之后的 div 内容

javascript - 在图表 js 2 中显示错误信息

javascript - 如何通过单击按钮添加行

jquery脉动文本

jquery - 动态地将照片添加到 Bootstrap 轮播中

javascript - 如何在 Google Fusion Table 的同一个表/层上构建 1 个以上的下拉选择器菜单?

javascript - JavaScript 代码应该掌握多少 DOM 知识?

javascript - Slick 轮播在调整大小期间隐藏最后一张幻灯片,slickGoTo 无法按预期工作

php - 语法错误,意外 'endforeach' (T_ENDFOREACH),期望文件结尾(在我的 slider View 中 - 轮播)