Откройте складной родительский класс при загрузке страницы, когда дочерний класс активен.Jquery

Программирование на jquery
Ответить
Anonymous
 Откройте складной родительский класс при загрузке страницы, когда дочерний класс активен.

Сообщение Anonymous »

У меня есть html-страница с разделами-аккордеоном и кнопками btn-acc-tab. Разделы-вкладки открываются, когда пользователь нажимает кнопку, и каждый раздел содержит ссылки-вкладки, которые могут быть активными. Разделы открываются и закрываются с помощью сценариев JQuery, показанных ниже. Я пытаюсь свернуть вкладку раздела с открытой в данный момент активной ссылкой при загрузке страницы, добавив показ класса, не дожидаясь нажатия пользователем. Большинство ответов, которые я смог найти здесь, касаются активации класса show при клике или каком-либо другом событии. Простая замена event на onload мне не помогла. Я знаю, что упускаю что-то простое, но я достаточно долго бился головой о стену, чтобы понять, что я не увижу это сам. Мы будем очень признательны за вашу помощь.
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]




Скрипты jQuery:

Код: Выделить всё

(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");
});
Также попробовал jQuery:

Код: Выделить всё

$(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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»