jQuery Аккордеонная Таблица Заполнения Изменений - PullRequest
0 голосов
/ 26 июня 2018

У меня есть страница с несколькими аккордеонными вкладками и большим количеством данных.Я хотел бы запустить функцию, которая заполняет мои таблицы, когда пользователь меняет вкладки.В настоящее время я загружаю весь контент во время загрузки, что очень медленно и неэффективно.Я пробовал следующее:

$( "#accordion" ).accordion({ beforeActivate: popdata }); - Activates only once.
$( "#accordion" ).accordion({ activate: popdata }); - Acts as a click.
$( "#accordion" ).change() - Depricated
$( "#accordion" ).click(); - Acts as a click.
$( "#accordion" ).header(); - Not Applicable
$( "#accordion" ).trigger(); - Acts as a click.
$( "#accordion" ).click( function ( event ) { event.currentTarget }; - Only lists the div.
$( "#accordion" ).bind('accordionchange', yourFunction); - Depricated

События click и activate запускаются, когда пользователь нажимает в любом месте аккордеона.Мне нужно было бы ограничить его заголовками или вкладками, но я не могу найти код для этого.beforeActivate срабатывает только один раз.

Кто-нибудь может что-то предложить?Я пытался создать свое собственное событие.Есть ли способ отфильтровать событие щелчка, чтобы определить, нажал ли пользователь на ui-accordion-header?

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Таким образом, хитрость заключалась в том, чтобы вводить в классы.TY MrPickles для подсказки.Я могу динамически обновлять таблицы следующим образом:

$( ".accordion" ).click(function() {  }

аккордеон, UI-аккордеон, UI-аккордеон-заголовок, UI-аккордеон-заголовок-активный, UI-аккордеон-заголовок-свернутый, UI-аккордеон-content, ui-accordion-content-active - все хорошие классы.

Ссылка на тему: https://api.jqueryui.com/accordion/

0 голосов
/ 26 июня 2018

Я признаю, что я "старая школа", когда дело доходит до jQuery, но я нахожу простые решения лучшими.

$(document).ready(function($) {
  $('#accordion').find('.accordion-toggle').click(function() {
    // Expand or collapse this panel
    $(this).next().slideToggle('fast');

    // Hide the other panels
    $(".accordion-content").not($(this).next()).slideUp('fast');
  });
});

Все спасибо за это простое аккордеонное решение с jQuery

...