@kurskiev_official

Как сделать чтобы функция срабатывалась только когда человек нажмет на все 3 кнопки?

вот допустим у меня есть определенный код и мне нужно что бы вот этот код:
$(".year, .mouth, .day").click(function (event) {
console.log( new Date(event.targer));
});
вызывался только тогда когда человек нажмет на все кнопки. Как это сделать без JQuery?
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
NAHB
@NAHB
<button class="year" name="date">
Year
</button>
<button class="mouth" name="date">
Mouth
</button>
<button class="day" name="date">
Day
</button>

let buttons = document.getElementsByName("date");
for(let btn of buttons) {

    btn.addEventListener("click", function(e) {
        e.target.dataset.ready = true;
  
        let isReady = true;
        for(let btn of buttons) {
            if(!btn.dataset.ready) {
               isReady = false;
            }
        }
        
        if(isReady) {
    	    console.log("Сюда можете вставить ваш код");
        }
  });
  
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@Stalkerdp
Можно создать переменную пустую строку и по нажатию на первых две кнопки дописывать в строку буквы, например
let checkPres="";
checkPres +="a";
checkPres +="b";

И на 3 кнопке

if (checkPres=="ab"){}
Ответ написан
@FlatUser
Можно так

let clickCount = 0;
$(".year, .mouth, .day").click(function (event) {
  if (clickCount === 3) {
      console.log( new Date(event.targer));
  }
});
Ответ написан
@Rerurk
<body>
<button name="bt" value="1">1</button>
<button name="bt" value="2">2</button>
<button name="bt" value="3">3</button>
<script>
	let sum=0;
	let s=document.getElementsByName('bt');
    s.forEach(item=>item.onmousedown=()=>btclick(item))

	let btclick=(bt)=>{
        sum=sum+parseInt(bt.value)
		console.log(bt.value+' pressedDown'+' sum='+sum);
		bt.style.background='green'
	    bt.onmousedown=()=>btUnClick(bt)
		testAllBtIsPress(sum)
    }
	let btUnClick=(bt)=>{
    	bt.style.background='grey';
    	bt.onmousedown=()=>btclick(bt);
		sum=sum-parseInt(bt.value)
		console.log(bt.value+' pressedUP'+'sum='+sum);

	}

	let testAllBtIsPress=(a)=>{
    	if (a===6){alert('ТАДАМ!! AllButtonsPressed')}
	}

</script>
</body>
Ответ написан
Stalker_RED
@Stalker_RED
Этими кнопками пользователь дату задает? Проверяйте тогда н клики по кнопкам, а валидную дату на выходе. А от он вам накликает 31-е февраля, например.

Еще лучше, заменить на input type="date"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы