Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Неактивность onclick (https://javascript.ru/forum/misc/60718-neaktivnost-onclick.html)

Anton6677 16.01.2016 04:25

Неактивность onclick
 
Здравствуйте.
У меня есть много элементов, при первом клике по элементу меняется стиль у нескольких других элементов, при втором нажатии с помощью toggle возвращается старый стиль.
Как мне сделать так, чтобы после того, как пользователь нажал на элемент(1) первый раз, он не мог нажимать на другие элементы пока не нажмет на элемент(1) второй раз?
Надеюсь понятно объяснил)
script
window.onload = function() {
var element1 = document.getElementById('IMAGE1');
                element1.onclick = function() {
            var imgs = document.getElementsByTagName('img');
            for (var i = 0, len = imgs.length; i < len; i++) 
                {imgs[i].classList.toggle("class2")}

element1.classList.toggle("class3");
document.getElementById("Id 'элемента").classList.toggle ("class1"); 
document.getElementById("Id 'элемента").classList.toggle ("class1");
document.getElementById("Id 'элемента").classList.toggle ("class1");
document.getElementById("Id 'элемента").classList.toggle ("class1");
document.getElementById("Id 'элемента").classList.toggle ("class1");
document.getElementById("STORM SPIRIT").className="class1"
document.getElementById("PHANTOM LANCER").classList.toggle ("class1");}


var element2 = document.getElementById('IMAGE1');
                element1.onclick = function() {
            var imgs = document.getElementsByTagName('img');
            for (var i = 0, len = imgs.length; i < len; i++) 
                {imgs[i].classList.toggle("class2")}

element2.classList.toggle("class3");
document.getElementById("Id элемента").classList.toggle ("class1"); 
document.getElementById("Id элемента").classList.toggle ("class1");
document.getElementById("Id элемента").classList.toggle ("class1");
document.getElementById("Id элемента").classList.toggle ("class1");
document.getElementById("Id элемента").classList.toggle ("class1");;}}

В

Lemme 16.01.2016 08:20

Anton6677, вешаете на активный элемент какой-нибудь класс, а потом проверяете его наличие (если есть, то ничего не делать).

<style>
  .active { color: red; }
</style>

<button>Click me</button>
<button>Click me</button>

<script>
  // на все кнопки
  // ps. лучше использовать делегирование
  [].forEach.call(document.querySelectorAll('button'), function(item) {
  	// вешаем событие клик.
  	item.onclick = function() {
  		// проверка, если данный элемент не является активным и есть активный элемент на странице, то ничего не делаем
  		if (!this.classList.contains('active') && document.querySelector('.active')) {
  			return false;
  		}
  		// тут ясно=)
  		this.classList.toggle('active');
  	}
  });
</script>


Часовой пояс GMT +3, время: 07:07.