2016-04-22 4 views
1

У меня есть проблема с выпадающим меню javascript. Мне нужно показать содержимое после нажатия заголовка окна.Dropdown блок javascript

HTML

<div id='cookiemenu'> 
       <div class='cookiemenu_header' onclick='ShowCookieBox()'> 
        Test 
       </div> 
       <div id="cookiemenu_dropwdown" class='cookiemenu_content'> 
       Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus mollis magna sed scelerisque hendrerit. 
       </div> 
</div> 

CSS

#cookiemenu { 
    width:100%; 
    overflow: hidden; 
    display:block; 

} 
#cookiemenu div.cookiemenu_header { 
    width:100%; 
    display:block; 
    margin-top: 0px; 
    background-color: #0B3954; 
    color:#FFFFFF; 
    text-align: center; 
    height: 25px; 
    font-size: 20px; 
    line-height: 25px; 
} 
#cookiemenu div.cookiemenu_header:hover, div.cookiemenu_header:target { 
    cursor: hand; 
    text-decoration: underline; 
} 
div.cookiemenu_content { 
} 
.ShowCookieBox { 
    display:block; 
    border:2px solid #red; 
} 

JS

<script> 
function ShowCookieBox() { 
    document.getElementById("cookiemenu_dropdown").classList.toggle("ShowCookieBox"); 
} 
</script> 

Это не работает вообще. Может кто-нибудь сказать мне, почему?

И второй вопрос. Есть ли шанс изменить JS, чтобы он мог сохранить «статус» окна (показанного или скрытого) в файлах cookie? Таким образом, пользователь может оставить его, закрыть страницу, и при следующем посещении он останется, когда он покинул его?

+0

* это не работает * - единственная наиболее бесполезна фраза, которую вы можете использовать. Что не работает? Что это не делает? Что он делает, чего это не должно делать? Получаете ли вы ошибки консоли в инструментах разработчика вашего браузера? Помогите нам помочь – freefaller

ответ

1

У вас есть два опечатка.

Идентификатор div должен быть cookiemenu_dropdown на div, но в настоящее время cookiemenu_dropwdown.

Также цвет red не #red.

function ShowCookieBox() { 
 
document.getElementById("cookiemenu_dropdown").classList.toggle("ShowCookieBox"); 
 
}
#cookiemenu { 
 
    width:100%; 
 
    overflow: hidden; 
 
    display:block; 
 

 
} 
 
#cookiemenu div.cookiemenu_header { 
 
    width:100%; 
 
    display:block; 
 
    margin-top: 0px; 
 
    background-color: #0B3954; 
 
    color:#FFFFFF; 
 
    text-align: center; 
 
    height: 25px; 
 
    font-size: 20px; 
 
    line-height: 25px; 
 
} 
 
#cookiemenu div.cookiemenu_header:hover, div.cookiemenu_header:target { 
 
    cursor: hand; 
 
    text-decoration: underline; 
 
} 
 
div.cookiemenu_content { 
 
} 
 
.ShowCookieBox { 
 
    display:block; 
 
    border:2px solid red; 
 
}
<div id='cookiemenu'> 
 
    <div class='cookiemenu_header' onclick='ShowCookieBox()'> 
 
    Test 
 
    </div> 
 
    <div id="cookiemenu_dropdown" class='cookiemenu_content'> 
 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus mollis magna sed scelerisque hendrerit. 
 
    </div> 
 
</div>

+0

Неплохо, когда я отредактировал этот пост. В моем исходном коде это правильно. Это не работает вообще. – Johnczek

+0

Убедитесь, что вы также изменили '# red' в CSS. – Wowsk

+0

О, спасибо. Но когда я пытаюсь изменить cookiemenu_content hide (display: none;), и после того, как javascrips используют toogle display: block; Это не работает. Ты знаешь почему? спасибо за ответ – Johnczek

0

Изменить ваши правила CSS в

div.cookiemenu_content.ShowCookieBox { 
    display: block; 
    border:2px solid red; 
} 
div.cookiemenu_content { 
    display: none; 
} 

display: block из .ShowCookieBox был быть перезаписаны display: none из div.cookiemenu_content правил, когда был применен ShowCookieBox класс.

Проверить jsfiddle