HTML-код:
Код: Выделить всё
[h4]Foo Bar[/h4]
[list]
[*]
[url=/Foo/Foo_Bar/Cat]Cat[/url]
(current)
[*]
[url=/Foo/Foo_Bar/Dog]Dog[/url]
[*]
[url=/Foo/Foo_Bar/Mouse]Mouse[/url]
[/list]
[h4]Foo Foo[/h4]
[list]
[*]
[url=/Foo/Foo_Foo/Bird]Bird[/url]
(current)
[*]
[url=/Foo/Foo_Foo/Fish]Fish[/url]
[*]
[url=/Foo/Foo_Foo/Dinosaur]Dinosaur[/url]
[/list]
Код: Выделить всё
(function ($) {
$.fn.replaceClass = function (pFromClass, pToClass) {
return this.removeClass(pFromClass).addClass(pToClass);
};
}(jQuery));
function clickAndPress(event) {
if(event.type === 'click'){
return true;
}
else if(event.type === 'keypress'){
var code = event.charCode || event.keyCode;
if((code === 32)|| (code === 13)){
return true;
}
}
else{
return false;
}
};
$(".tab-link").on("click keypress", function(){
if(clickAndPress(event) === true) {
var id = $(this).data('target')
var par_id = $(this).data('id');
$(".tab-content").replaceClass("d-block", "d-none");
$(".sr-only").remove();
$(document.getElementById(id)).replaceClass("d-none", "d-block");
$(".tab-link").removeClass("active");
if ($(".btn-acc-tab").hasClass("active")) {
$(".btn-acc-tab").removeClass("active");
};
$(this).addClass("active");
$(document.getElementById(par_id)).addClass("active");
$('(current)').insertAfter(".active");
}
});
$(document).ready(function(){
var active = $(".tab-link.active").data('target');
$(".acc-tab").addClass("show");
});
Код: Выделить всё
$(this).closest(".btn-acc-tab").addClass("active");
Вопрос длинный, поэтому, чтобы прояснить ситуацию... Самое главное - это сделать btn-acc-tab активным, когда дочерний элемент активен. В то же время на вкладке acc должны отображаться другие . Когда выбран из другой вкладки аккаунта / btn-acc-tab, создается новая родительская вкладка акк / btn-acc-tab должен стать show и активным, а старые должны потерять то же самое.
Подробнее здесь: https://stackoverflow.com/questions/782 ... -is-active