我怎样才能避免关注 slickGoTo 事件

How can I avoid focusing on slickGoTo event

我正在使用 slick slider 以使用轮播执行一些操作。

我记录了 video 我想避免的行为。 当您单击选项卡时,它会做出奇怪的焦点动作吗?我所需要的是,如果您单击任何选项卡,焦点不会移动到任何地方,因此屏幕不会进行向下滚动操作。

我正在使用此功能转到我需要的幻灯片,这导致了我不需要的聚焦故障:

var handleTabsClick = function() {
    $('.product-details--P3 .product-tabs__link').on('click', function() {
        var index = $(this).data('index');
        $('.slick').slick('slickGoTo', index, false);
    });
};

这是这些选项卡的 html

<ul class="product-tabs js-tabs">
    <li class="js-tab">
        <a class="product-tabs__link" href="#" data-index="0">
            Advantage <span>SafaBalance</span> </a>
    </li>
    <li class="js-tab">
        <a class="product-tabs__link" href="#" data-index="1">
            Advantage <span>Plus</span> </a>
    </li>
    <li class="js-tab">
        <a class="product-tabs__link" href="#" data-index="2">
            Advantage <span>Relationships</span> </a>
    </li>
</ul>

这些选项卡独立于 slick 功能。

因为 href 有 # 所以每次点击都会在 url 中添加 # 替换浏览器的 url。因此,将锚标记中的 href="#" 替换为 href="javascript:void(0)",例如

<ul class="product-tabs js-tabs">
    <li class="js-tab">
        <a class="product-tabs__link" href="javascript:void(0)" data-index="0">
            Advantage <span>SafaBalance</span> </a>
    </li>
    <li class="js-tab">
        <a class="product-tabs__link" href="javascript:void(0)" data-index="1">
            Advantage <span>Plus</span> </a>
    </li>
    <li class="js-tab">
        <a class="product-tabs__link" href="javascript:void(0)" data-index="2">
            Advantage <span>Relationships</span> </a>
    </li>
</ul>

或者,您可以在点击事件中使用 event.preventDefault(),例如

$('.product-details--P3 .product-tabs__link').on('click', function(e){
    e.preventDefault();
    var index = $(this).data('index');
    $('.slick').slick('slickGoTo', index, false);
});