javascript - collapse row on click -
i'm working on code have difficulties implementing properly. wan place arrow in front of question , synchronize click event text.
jsfiddle.net/tx8pal7l/5/
can me fix issue?
html:
<div class="container faq_wrapper"> <div class="row"> <div class="span10 offset1"> <p> </p> <div class="faq-all-actions"> <a class="faq-expand">expand all</a> | <a class="faq-collapse">collapse all</a></div> </div> </div> <div class="row"> <div class="span10 offset1"> <div class="question-wrapper"> <div class="arrows"> </div> <div class="big-q"> q</div> <div class="question"> <div class="arrow"></div><h6>can try software before buy it?</h6></div> <div class="answer-wrapper"> <div class="big-a"> a</div> <div class="answer"> yes! <a href="/trial">download free trial</a> , you'll have instant access features 30 days, absolutely free. don't require credit card details or commitment.</div> </div> </div> </div> </div> </div>
css:
.answer-wrapper { display: none; } .arrow { margin: 1em; } .arrow::before { position: absolute; content: ''; width: 0; height: 0; border: .5em solid transparent; border-left-color: gray; transform-origin: 0 50%; transition: transform .25s; } .arrow.down::before { transform: rotate(90deg); transition: transform .25s; }
javascript:
$(document) .on('click','.row',function(){ $(this).find('.answer-wrapper').slidetoggle(); }) .on('click','.faq-expand',function(){ $('.answer-wrapper').slidedown(); }) .on('click','.faq-collapse',function(){ $('.answer-wrapper').slideup(); }) var arr = document.queryselector('.arrow'); arr.addeventlistener('click', function(event) { event.target.classlist.toggle('down'); }); ;
here working fiddle javascript, css still needs bit of work:
basically using wrong selectors jquery.
html:
<div class="container faq_wrapper"> <div class="row"> <div class="span10 offset1"> <p> </p> <div class="faq-all-actions"> <a class="faq-expand">expand all</a> | <a class="faq-collapse">collapse all</a></div> </div> </div> <div class="row"> <div class="span10 offset1"> <div class="question-wrapper"> <div class="arrows"> </div> <div class="big-q"> q</div> <div class="question"> <div class="arrow"></div><h6>can try software before buy it?</h6></div> <div class="answer-wrapper"> <div class="big-a"> a</div> <div class="answer"> yes! <a href="/trial">download free trial</a> , you'll have instant access features 30 days, absolutely free. don't require credit card details or commitment.</div> </div> </div> </div> </div> </div>
jquery:
$(document).ready(function() { .on('click','.row .question-wrapper',function(){ $(this).find('.answer-wrapper').slidetoggle(); $('.arrow').toggleclass('down'); }) .on('click','.faq-expand',function(){ $('.answer-wrapper').slidedown(); $('.arrow').addclass('down'); }) .on('click','.faq-collapse',function(){ $('.answer-wrapper').slideup(); $('.arrow').removeclass('down'); }) });
Comments
Post a Comment