Search code examples
jqueryhtmlshow-hidetoggleclass

JQuery - show/hide isn't working


So I've done a show/hide script that open and closes the element that's being clicked. But now I can't get it to work somehow and i can't figger out why.

Can someone try take a look at it?

HTML

<div id="fleresvar" class="fleresvar">  <u><b>Klik her for at se flere svar</b></u>

    <div id="txtmore" class="txtmore" style="display:none;">
        <div id="txtask1" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;"></div>
        <div id="txtask2" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;"></div>
        <div id="txtask3" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;"></div>
        <div id="txtask4" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;"></div>
        <div id="txtask5" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;"></div>
</div

JavaScript

$("#fleresvar").click(function () {
    var $element = $(this);
    if ($(this).hasClass('open')) {
        $element.removeClass("open");
        $element.children(".txtmore").hide(500);
    } else {
        $(".open").removeClass("open");
        $('.txtmore').hide(500);

        $element.toggleClass('open');
        $element.children('.txtmore').toggle(500);
    }

});

jsFiddle


Solution

  • Check this FIDDLE

    $(document).ready(function(){
        $(".fleresvar").on('click','.handler',function () {
            var $element = $(this).closest('.fleresvar');
            if ($element.hasClass('open')) 
            {
                $element.removeClass("open");
                $element.find(".txtmore").hide(500);
            } 
            else 
            {
                $(".open").removeClass("open");
                $('.txtmore').hide(500);    
                $element.addClass('open');
                $element.find('.txtmore').show(500);
            }    
        });
    });
    

    HTML

    <div id="fleresvar" class="fleresvar">  
        <div class="handler"><u><b>Klik her for at se flere svar</b></u></div>
        <div id="txtmore" class="txtmore" style="display:none;">
            <div id="txtask1" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;">txtask1</div>
            <div id="txtask2" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;">txtask2</div>
            <div id="txtask3" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;">txtask3</div>
            <div id="txtask4" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;">txtask4</div>
            <div id="txtask5" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;">txtask5</div>
        </div>
    </div>
    
    <div id="fleresvar2" class="fleresvar"> 
        <div class="handler"><u><b>Klik her for at se flere svar</b></u></div>
        <div id="txtmore" class="txtmore" style="display:none;">
            <div id="txtask1" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;">txtask1</div>
            <div id="txtask2" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;">txtask2</div>
            <div id="txtask3" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;">txtask3</div>
            <div id="txtask4" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;">txtask4</div>
            <div id="txtask5" style="text-decoration:underline;color:#8F8F8F;cursor:pointer;">txtask5</div>
        </div>
    </div>