@JarvisVRTX

Почему JS код выполняется не порядку?

Всем привет.
У меня имеется вот такой код. Каждый раз по клику на один из блоков-родителей проверяется, нет ли уже других активных элементов и затем вешается класс на соответствующий родителю дочерний элемент. При повторном клике на родителя активного элемента класс убирается через через toggleClass. Вроде как всё работает, но столкнулся с проблемой: в моём коде СНАЧАЛА должны убираться классы .act, а ПОТОМ уже должен срабатывать тоггл - у меня же наоборот, сначала присваивается класс, а потом убирается у остальных. Как пофиксить?

Пример на фиддле

P.S. Условие внизу - это отдельный костыль для мобильного отображения и по сути отношения к делу не имеет, но для полноты картины привёл и его

jQuery('.filter_parent').click(function(){
        
        var myvar = jQuery(this).attr('id');
        console.log(myvar);
        
        jQuery(".hiddenblock").not(jQuery("#c-" + myvar)).removeClass('act');
        jQuery("#c-" + myvar).toggleClass('act');
        
        
        if(window.matchMedia('(max-width: 768px)').matches)
    		{
    			switch(myvar) {
    				case 'fp1':
    					jQuery( "#fp2" ).after( jQuery( "#c-fp1" ) );
    				
    				case 'fp2':
    					jQuery( "#fp2" ).after( jQuery( "#c-fp2" ) );
    					
    				case 'fp3':
    					jQuery( "#fp4" ).after( jQuery( "#c-fp3" ) );
    					
    				case 'fp4':
    					jQuery( "#fp4" ).after( jQuery( "#c-fp4" ) );
    					
    				case 'fp5':
    					jQuery( "#fp6" ).after( jQuery( "#c-fp5" ) );
    					
    				case 'fp6':
    					jQuery( "#fp6" ).after( jQuery( "#c-fp6" ) );
    			}
    		    
    		}
        
    	})
  • Вопрос задан
  • 395 просмотров
Решения вопроса 1
Скорее всего ни тот порядок и не другой, а срабатывают они одновременно.
Что бы тогл сработал после удаления класса попробуйте таймаут поставить, например:
setTimeout(function (){
    jQuery("#c-" + myvar).toggleClass('act')
    }, 1000);

Это Вам надо? Если я правильно Вас понял
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы