Откройте складной родительский класс при загрузке страницы, когда дочерний класс активен.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»