// Инициализация переменных
var div1 = document.querySelector('.test1'),
div2 = document.querySelector('.test2'),
visibility = false;
// Функция, которая блоку .test2 устанавливает
// css-свойство display:none или block
function toggle () {
// если visibility true, то display: block, иначе display: none
div2.style.display = visibility ? 'block' : 'none';
}
// При клике по .test1 выполнять следующие действия:
div1.addEventListener('click', function (e) {
e.stopPropagation(); // Отчищать поток существующих событий(кликов, наведений мыши и прочего)
visibility = !visibility; // Установить булеву переменную в противоположное значение
toggle(); // Вызвать функцию toggle
}, false);
// Клик по документу(нужно для эмуляции клика вне .tes1 и .test2)
document.addEventListener('click', function () {
visibility = false; // установить переменную в false
toggle(); // вызвать функцию toggle
});
// клик по .test2
div2.addEventListener('click', function (e) {
e.stopPropagation(); // Очищать поток всех событий(нужно для предотвращение клика по document)
}, false);
<script src="..." async></script>
var script = document.createElement('script');
script.src = '...';
script.async = true;
document.head.appendChild(script);
if (document.readyState != 'loading') {
// Делаем что нужно
} else {
document.addEventListener('DOMContentLoaded', function () {
// Делаем что нужно
});
}
new char
выделит память только для одного символа, а у вас их много. То есть уже в следующей строке (cin >> array)
проезд по памяти. Если пишете в целях обучения и нельзя брать std::string
, то выделяйте с запасом, например new char[256];
Освобождать при этом память надо будет при помощи delete[] array
;cin >> array
делает это сам (пишет в конец array нулевой символ), а вы в своей функции нулевой символ не выставляете. Сделать это можно так:str[length_str] = '\0';
length_str
.delete []