@julia-finance

Как перенаправить пользователя при нажатии на кнопки с одной вкладки на другую, где содержится якорь?

Пересмотрела уже много материалов, похожих вопросов, но не могу найти решение.

На странице в шапке имеется кнопка "Купить" с ссылкой на якорь #purchase, блок с якорем находится на вкладке #about. Клик отлично работает только на активированной вкладке #about (активирована по умолчанию, при заходе на страницу), если переключится на другую вкладку, при нажатии на кнопку "Купить" ничего не происходит. Возвращается на #about - с якорем срабатывает.

Соответственно нужно понять какой скрипт прописать, чтобы кнопка работала на всех вкладках, а именно открывала вкладку #about, где находится якорь и переходила на якорь #purchase.

Сейчас вот такой js работает:
Общий для табов
jQuery(function(){
		var hash = window.location.hash;
		hash && jQuery('a.c-tab[href="' + hash + '"]').tab('show');
		if(hash)previousActive = jQuery('a.c-tab[href="' + hash + '"]');
		else previousActive=jQuery('#c-tabs>li:first-child>a');

		previousActive.addClass('color');
	

		jQuery('.c-tab').click(function (e) {e.preventDefault();
			jQuery(this).tab('show');
			previousActive.removeClass('color');
			previousActive=jQuery(this);
			jQuery(this).addClass('color');
			var scrollmem = jQuery('body').scrollTop() || jQuery('html').scrollTop();
			window.location.hash = this.hash;
			jQuery('html,body').scrollTop(scrollmem);
			jQuery(document).trigger('resize');
			
		});

		jQuery('.business-tab').each(function(){
			if(jQuery(this).parent().hasClass('active')) {
				//jQuery(this).trigger('click');
				jQuery(this).tab('show');
				previousActive.removeClass('color');
				previousActive=jQuery(this);
				jQuery(this).addClass('color');
				jQuery(document).trigger('resize');
			}
		})

Плавный скрол

$(document).ready(function(){
    $('.purchase-button').click( function(){
	var scroll_el = $(this).attr('href');
        if ($(scroll_el).length != 0) { 
	    $('html, body').animate({ scrollTop: $(scroll_el).offset().top }, 500); 
        }
	    return false;
    });
});


И то, что не работает:
}),jQuery(".purchase-click").each(function() {
        	if ( post.isPost )
	        	jQuery(this).find('.purchase-button').click(function(){
	        		jQuery('#about-tab').trigger('click'); // Кнопка таба about, при клике активирует содержимое #about
	        	});

Идея такая, что при нахождении на любой вкладке, при нажатии на кнопку Купить, активировалась вкладка about и скролинг на блок с якорем #purchase.
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
@julia-finance Автор вопроса
Это код разработчика темы Wordpress, я только кнопку purchase добавила и прописала скролинг для нее.

Вот как выглядит исходных шаблон: https://businessfinder.wyzi-directory-theme.com/bu...

Я добавила кнопку "Купить" в то место, где сейчас находятся синие социальные кнопки. По сути пытаюсь повторить то, что сейчас у них делает кнопка слева SHOW MORE - она переводит на вкладку #about из любого места и делает плавный скрол до id=about.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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