Помогите разобраться пожалуйста. с javascript

Пользователь

от rollir.ea , в категории: JavaScript , 8 месяцев назад

Всем доброго вечера ! Знаю в javascript я ниже плинтуса и его совсем еще не учил, (исправлюсь честно)

я с толкнулся с проблемой и пытался ее решить самостоятельно 4 сутки и все бестолку, перечитал кучу примеров основу конкретного участка но все четно волосы уже дыбом и начинают отпускаться руки в общем проблема следующего характера:

вот сам

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
window.addEventListener('load', function() {
	var websocket = new WebSocket(`ws://${window.location.hostname}/ws`);
	websocket.onopen = function(event) {
	 console.log('Connection established');
	}
	websocket.onclose = function(event) {
	 console.log('Connection died');
	}
	websocket.onerror = function(error) {
	 console.log('error');
	};
	websocket.onmessage = function(event) {
	 if (event.data == "1") {
		document.getElementById('state').innerHTML = "ON";
		document.getElementById('toggle-btn').checked = true;
	 }
	 else {
		document.getElementById('state').innerHTML = "OFF";
		document.getElementById('toggle-btn').checked = false;
	 }
	  
	 if (event.data == "1") {
		document.getElementById('TyTy').innerHTML = "ON";
		document.getElementById('toggle-btn2').checked = true;
	 }
	 else {
		document.getElementById('TyTy').innerHTML = "OFF";
		document.getElementById('toggle-btn2').checked = false;
	 }
  
	};
	document.getElementById('toggle-btn').addEventListener('change', function() { websocket.send('toggle');});
	document.getElementById('toggle-btn2').addEventListener('change', function() { websocket.send('toggle2');})	
 });

 можно ли как то объединить эти две строки ?

1
2
document.getElementById('toggle-btn').addEventListener('change', function() { websocket.send('toggle');});
document.getElementById('toggle-btn2').addEventListener('change', function() { websocket.send('toggle2');})

проблема в том что они управляют чекбоксами и естественно так как последняя строка выполняется а первую игнорит

и получается за двоение этих чек боксов. извините что может не совсем корректно описал свою проблему.

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jaren , 8 месяцев назад

@rollir.ea Попробуйте вот так:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
document.getElementById('toggle-btn').addEventListener('change', function() { 
    if (this.checked) {
        websocket.send('toggle');
    }
});

document.getElementById('toggle-btn2').addEventListener('change', function() { 
    if (this.checked) {
        websocket.send('toggle2');
    }
});