I've been working with jQuery for a few days now and starting to get the hang of it (it does the thing that I want to do).
I've made an accordion, and the header of each accordion item has an arrow that points up (for being open) or down (for being closed). This code works fine, does what it has to do. When I wrote it, it felt very ugly.
When I press a header of an item in the accordion, function gets called like this:
<div class="accordionHeadingDiv" onclick="leftActive(0, this)">
The function itself:
function leftActive(e, b) {
$('.active').removeClass('active');
$('.relative').eq(e).addClass('active');
$('.arrowUp').addClass('arrowDown');
$('.arrowUp').removeClass('arrowUp');
$('.arrowDown', b).addClass('arrowUp');
$('.arrowDown', b).removeClass('arrowDown');
}
HTML structure:
<div class="overzicht">
<div id="accordion">
<div class="accordionHeadingDiv" onclick="leftActive(0, this)">
<h3 class="accordionHeading"> Transport logistics </h3>
<div class="arrowUp">
</div>
</div>
<div class="accordionContent">
<?php require 'templates/dummyBedrijven.php'; ?>
</div>
<div class="accordionHeadingDiv" onclick="leftActive(1, this)">
<h3 class="accordionHeading"> Real Estate </h3>
<div class="arrowDown">
</div>
</div>
<div class="accordionContent">
<?php require 'templates/dummyBedrijven.php'; ?>
</div>
<div class="accordionHeadingDiv" onclick="leftActive(2, this)">
<h3 class="accordionHeading"> Salt trade Winter Maintenance </h3>
<div class="arrowDown">
</div>
</div>
<div class="accordionContent">
<?php require 'templates/dummyBedrijven.php'; ?>
</div>
<div class="accordionHeadingDiv" onclick="leftActive(3, this)">
<h3 class="accordionHeading"> Human Resources Solutions </h3>
<div class="arrowDown">
</div>
</div>
<div class="accordionContent">
<?php require 'templates/dummyBedrijven.php'; ?>
</div>
</div>
</div>
#accordion
ID \$\endgroup\$