Вход

Просмотр полной версии : помогите модернизировать простенький скрипт


seddx
30.10.2015, 08:51
Есть скрипт, отвечающий за появления блока:

<script>
var menuLeft = document.getElementById( 'spmenu-s1' ),
body = document.body;

showLeft.onclick = function() {
classie.toggle( this, 'active' );
classie.toggle( menuLeft, 'spmenu-open' );
disableOther( 'showLeft' );
};

function disableOther( button ) {
if( button !== 'showLeft' ) {
classie.toggle( showLeft, 'disabled' );
}
}
</script>

Помогите модернизировать скрипт так, чтобы блок убирался нажимая на любое место на сайте, а не только на кнопку.

ksa
30.10.2015, 09:20
seddx, как правило вешают обработчик click на все body... И если кликнули за пределами твоего контейнера - гасить его.

рони
30.10.2015, 09:26
seddx,
Закрытие блока по клику вне блока или по кнопке закрыть (http://javascript.ru/forum/dom-window/57577-zakrytie-bloka-po-nazhatiyu-v-lyubom-meste.html#post383591)

seddx
30.10.2015, 09:57
Дело в том, что у меня блок выезжает по нажатию кнопки. Если я сделаю обработчик в body, он будет тупо прятать его, а не скрывать обратно.

ронни, спасибо, но что-то не получается совместить мой скрипт с вашим..

ksa
30.10.2015, 10:19
Если я сделаю обработчик в body, он будет тупо прятать его, а не скрывать обратно.
Так сделай как тебе нужно. :)
Зачем делать не так как тебе нужно?

seddx
30.10.2015, 10:40
Так сделай как тебе нужно. :)
Зачем делать не так как тебе нужно?

Да, сейчас подумаю и свангую, как это было в предыдущей теме :)

Лучшего ответа я и не ожидал :lol:

рони
30.10.2015, 10:40
seddx,
строки div.style.display замените на classie.toggle и наверно classie.remove