Reputation:
I want to have custom trigger element for top level accordion elements as well as for sub level. What will be the proper JS code for this structure?
<div class="ui accordion">
<div class="title">
<span class="custom-trigger-1"></div>
</div>
<div class="content">
<div class="accordion">
<div class="title">
<span class="custom-trigger-2"></div>
</div>
<div class="content"></div>
</div>
</div>
</div>
Upvotes: 1
Views: 1446
Reputation: 51
Your html needs some tag correction.. but you can accomplish this with:
$('.ui.accordion').accordion().on('click', function(e) {
console.log(e);
});
Now you have a reference to the clicked dom object and can get your "custom trigger" identifier(s).
If this is going to be a simple use case then I would recommend using the onclick="" html attribute or using an <a>
tag.
See it in action: http://codepen.io/appsoa/details/XmYRyz/
Markup, If using javascript to render the component:
<div class="ui styled accordion">
<div class="active title">
<i class="dropdown icon"></i> Level 1
</div>
<div class="active content">
Welcome to level 1
<div class="accordion">
<div class="active title">
<i class="dropdown icon"></i> Level 1A
</div>
<div class="active content">
<p>Level 1A Contents</p>
<div class="accordion">
<div class="title active">
<i class="dropdown icon"></i> Level 1A-A
</div>
<div class="content active">
Level 1A-A Contents
</div>
<div class="title">
<i class="dropdown icon"></i> Level 1A-B
</div>
<div class="content">
Level 1A-B Contents
</div>
</div>
</div>
<div class="title">
<i class="dropdown icon"></i> Level 1B
</div>
<div class="content">
Level 1B Contents
</div>
<div class="title">
<i class="dropdown icon"></i> Level 1C
</div>
<div class="content">
Level 1C Contents
</div>
</div>
</div>
<div class="title">
<i class="dropdown icon"></i> Level 2
</div>
<div class="content">
<p>Welcome to level 2</p>
<div class="accordion">
<div class="active title">
<i class="dropdown icon"></i> Level 2A
</div>
<div class="active content">
<p>Level 2A Contents</p>
<div class="accordion">
<div class="title">
<i class="dropdown icon"></i> Level 2A-A
</div>
<div class="content">
Level 2A-A Contents
</div>
<div class="title">
<i class="dropdown icon"></i> Level 2A-B
</div>
<div class="content">
Level 2A-B Contents
</div>
</div>
</div>
<div class="title">
<i class="dropdown icon"></i> Level 2B
</div>
<div class="content">
Level 2B Contents
</div>
<div class="title">
<i class="dropdown icon"></i> Level 2C
</div>
<div class="content">
Level 2C Contents
</div>
</div>
</div>
</div>
Upvotes: 1