The problem with selectors

The problem I am facing is not able to select divs inside the div'a menuItem. I tried using the jQuery selector to select both for the class and for the ID, but every time I try to do something with it, such as animation, nothing happens. Is there any jQuery law that I don't know about that prevents me from doing this?

$('.menu')
    .hover( function() { 
        $(this).toggleClass('highlighted'); 
    })
    .click(function() {
        $(this).parent().children('.menuItem').children('#wtf').slideDown();
    });

Also tried this for click (), but none of them work.

$('#wtf').slideDown();
$('.test').slideDown();
$(this).parent().find('.menuItem').each( function() { $(this).slideDown(); } );
$(this).parent().children('.menuItem').children().slideDown();

<div class='box'>
    <div>
        <div class='menu'>Resources</div>

        <div class='menuItem'>
            <div ID='wtf' class='test'>Library</div>
            <div>Internet</div>
            <div>Your mom</div>
        </div>
    </div>

    <div>
        <div class='menu'>Products</div>
    </div>

    <div>
        <div class='menu'>Contact</div>
    </div>
</div>

body { font-size: 16px; }

.box {
    background: blue; 
    border: 1px; 
    padding: 4 6 4 6; 
    position: absolute; 
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px; 
    border: 2px solid;
}

.box div {
    float: left; 
    text-align:center; 
}

.menu {
    background: lightblue;
    width: 105px;
    text-align: center;
    padding: 4 10;
    margin: 1 5;
    font-weight: bold;
    font-family:'Verdana', 'Times', serif; 
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border: 2px solid gray;
}

.highlighted {
    background: lime;
    color: navy;
}

.menuItem {
    clear: left;
    position: absolute;
    margin-top: 30px;
}

.menuItem div {
    display: none;
    background: lightblue;
    opacity: .7;
    filter: alpha(opacity=.7);
    width: 105px;
    text-align: center;
    padding: 4 10;
    margin: 1 5;
    font-size: 10px;
    font-family: 'Verdana', 'Times', serif; 
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    border: 2px solid white;
    clear: left;
}
+3
source share
2 answers

I applied the background color to your style and your jQuery selector was not selected correctly. I tried this, and it changed the background color, but I don’t have CSS to render slideDown () work - you will need to write your CSS correctly.

$().siblings() ( "# WTF" ) CSS ( " ", "# CCCCCC" ) slideDown();...

0

?

$(this+' > .menuItem div')

+1

Source: https://habr.com/ru/post/1733252/


All Articles