JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class='projectscontainer'>
<div class="destarrow arrow-right"></div>
<span class="item destproject unselectable" title="ID: 426">asdasdasd-Xrj</span><br>
<div class="srcprojects" style="display: block; margin-left: 30px;">
<span class="item srcproject" title="ID: 4760">Lokhxtea</span>
</div>
<div class="srcprojects" style="display: block; margin-left: 30px;">
<span class="item srcproject" title="ID: 4760">Zbjamjh</span>
</div>
<div class="srcprojects" style="display: block; margin-left: 30px;">
<span class="item srcproject" title="ID: 6034">Jeuzax-Xrjamjhxteaq</span>
<div id='arrow' class='arrow-right'></div>
<span class='item srcproject exception' title='Project'>Qiospq</span>
<div id='arrow' class='arrow-right'></div>
<span class='item srcproject exception' title='Feature'>Qiospq</span>
<div id='arrow' class='arrow-right'></div>
<span class='item srcproject exception' title='Milestone'>Muqewko</span>
</div>
</div>
<div class='projectscontainer'>
<div class="destarrow arrow-right"></div>
<span class="item destproject unselectable" title="ID: 426">weuzax-Xrj</span><br>
<div class="srcprojects" style="display: block; margin-left: 30px;">
<span class="item srcproject" title="ID: 4760">mjhxtea</span>
</div>
<div class="srcprojects" style="display: block; margin-left: 30px;">
<span class="item srcproject" title="ID: 4760">Xrjamjh</span>
</div>
<div class="srcprojects" style="display: block; margin-left: 30px;">
<span class="item srcproject" title="ID: 6034">Kaoweuzax-Xrjamjhxteaq</span>
<div id='arrow' class='arrow-right'></div>
<span class='item srcproject exception' title='Project'>Aoiospq</span>
<div id='arrow' class='arrow-right'></div>
<span class='item srcproject exception' title='Feature'>Klwspq</span>
<div id='arrow' class='arrow-right'></div>
<span class='item srcproject exception'...
CSS
body {
font-family:"Helvetica", "Arial", "FreeSans", "Verdana", "Tahoma", "Lucida Sans", "Lucida Sans Unicode", "Luxi Sans", sans-serif;
}
div.content {
display: block;
}
.item {
background: #00E6E6;
display: inline-block;
padding: 2px 5px;
margin: 2px 0px;
}
.srcprojects {
margin-left: 30px;
}
.destproject {
cursor: pointer;
}
/*.destproject::-moz-selection, .destproject::selection {
background-color:Transparent;
color:#000;
}
*/
.exception {
background-color: #FA6699;
}
.null {
background-color: #D1D1D1;
}
#destarrow {
cursor: pointer;
}
.unselectable {
-webkit-user-select: none;
/* Safari, Chrome */
-khtml-user-select: none;
/* Konqueror */
-moz-user-select: none;
/* Firefox */
-ms-user-select: none;
/* IE */
user-select: none;
/* CSS3 */
}
span.row {
width: 300px;
display: inline-block;
}
.arrow-left {
width: 0;
height: 0;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-right: 5px solid black;
}
.arrow-right {
display: inline-block;
width: 0;
height: 0;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-left: 5px solid black;
margin: 0 5px;
}
.arrow-up {
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-bottom: 5px solid black;
}
.arrow-down {
display: inline-block;
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 5px solid black;
margin: 0 4px 4px 1px;
}
.clear {
clear: both;
margin: 10px 0;
}
JavaScript
$('div.srcprojects').hide();
$('.projectscontainer').on("click", "span.destproject", function () {
$(this).siblings('.srcprojects').toggle().end().siblings('div.destarrow').toggleClass("arrow-right arrow-down");
}).on("click", "div.destarrow", function () {
$(this).parent().find("span.destproject").trigger("click");
});