Установить активную вкладку в соответствии с датой в WordPress Visual композитора

Я пытаюсь установить активную вкладку в соответствии с датой. Поэтому, если сегодня вторник, мне нужен вторник, чтобы быть активной вкладкой. Я работаю над WordPress, с визуальным плагином композитора. То есть JQuery, над которым я работаю, прекрасно работает с вкладками, созданными с нуля, но у меня возникают проблемы с поиском правильного класса для установки атрибута "активный" для вкладки. Веб-сайт, который я пробую, это http://ordernow.com.ar/home/ и я оставляю свой код js для вас. Часть, над которой я работаю, это то, что на сегодняшний день - idx 2, потому что я работал во вторник. Но вы можете скопировать этот код в указатель рабочего дня. Большое спасибо.

<script>
    (function($){
var today =  new Date();
    var todayIdx = today.getDay();
    

    if (todayIdx === 0) {
        $('li:nth-child(6)').removeClass('active');
        $('li:nth-child(7)').addClass('active');
        $('.block article').hide();
        $('.block  #do1').show();
    }
    else if (todayIdx === 1) {
        $('li:nth-child(7)').removeClass('active');
        $('li:nth-child(1)').addClass('active');
        $('.block article').hide();
        $('.block  #lu1').show();
    }
    else if (todayIdx === 2) {
        $('.w-tabs-item.claselunes').removeClass('active');
        $('.w-tabs-item.clasemartes').addClass('active');
       
    }
    else if (todayIdx === 3) {
        $('li:nth-child(2)').removeClass('active');
        $('li:nth-child(3)').addClass('active');
        $('.block article').hide();
        $('.block  #mi1').show();
    }
    else if (todayIdx === 4) {
        $('li:nth-child(3)').removeClass('active');
        $('li:nth-child(4)').addClass('active');
        $('.block article').hide();
        $('.block  #ju1').show();
    }
    else if (todayIdx === 5) {
        $('li:nth-child(4)').removeClass('active');
        $('li:nth-child(5)').addClass('active');
        $('.block article').hide();
        $('.block  #vi1').show();
    }
    else  {
        $('li:nth-child(5)').removeClass('active');
        $('li:nth-child(6)').addClass('active');
        $('.block article').hide();
        $('.block  #sa1').show();
    }
console.log('jquery cargado con éxito');    
console.log('today:', todayIdx);
})(jQuery);
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

1 ответ

Я создал следующую функцию, которая переключает визуальные вкладки композитора по идентификатору.

var setVCTab = function(name) {

    var $id = "#"+name; 
    if ($($id).length > 0) {

        setTimeout(function() {

            // Clear tabs
            $(".vc_tta-tab").each(function(i,a) {
                $(a).removeClass("vc_active");
            });


            // Clear panels
            $(".vc_tta-panels").children().each(function() {
                $(this).removeClass("vc_active");
            });


            // Activate Tabs
            $(".vc_tta-tabs-list a[href="+$id+"]").each(
                function(i,a) { var tab = $(a).closest(".vc_tta-tab"); if (tab) tab.addClass("vc_active");}
            );

            // Activate Panel
            $($id).addClass("vc_active");

            location.href = $id;

        },1);
    }

};

Поэтому для вас должно быть возможным сделать что-то вроде следующего.

// Map day indices to tab IDs
var days =["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];

// Activate tab for day
setVCTab(days[(new Date()).getDay()]);
Другие вопросы по тегам