PluginProbe
Elementor Website Builder – more than just a page builder / 3.33.0-beta1
Elementor Website Builder – more than just a page builder v3.33.0-beta1
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
elementor / modules / atomic-widgets / elements / atomic-tabs / atomic-tabs-handler.js

atomic-tabs-handler.js in Elementor Website Builder – more than just a page builder 3.33.0-beta1, at modules/atomic-widgets/elements/atomic-tabs/atomic-tabs-handler.js

40 lines 1.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import { register } from '@elementor/frontend-handlers';
2
3 register( {
4 elementType: 'e-tabs',
5 uniqueId: 'e-tabs-handler',
6 callback: ( { element, signal } ) => {
7 const tabs = element.querySelectorAll( '[data-element_type="e-tab"]' );
8 const tabPanels = element.querySelectorAll( '[data-element_type="e-tab-panel"]' );
9
10 const setActiveTab = ( id ) => {
11 tabPanels.forEach( ( tabPanel ) => {
12 const activeTab = tabPanel.getAttribute( 'data-tab-id' ) === id;
13
14 if ( activeTab ) {
15 tabPanel.style.removeProperty( 'display' );
16 tabPanel.removeAttribute( 'hidden' );
17
18 return;
19 }
20
21 tabPanel.style.display = 'none';
22 tabPanel.setAttribute( 'hidden', 'true' );
23 } );
24 };
25
26 const defaultActiveTab = element.getAttribute( 'data-active-tab' );
27
28 setActiveTab( defaultActiveTab );
29
30 tabs.forEach( ( tab ) => {
31 const clickHandler = () => {
32 const tabId = tab.getAttribute( 'data-id' );
33 setActiveTab( tabId );
34 };
35
36 tab.addEventListener( 'click', clickHandler, { signal } );
37 } );
38 },
39 } );
40