2
我有一個非常簡單的HTML代碼,只需爲什麼socket.io不能很好地處理點擊事件?
<div id="colorMe"> Change Me </div>
我試圖用socket.io任何窗口上單擊,然後當以色上的所有窗口這個div點擊後它再次改變其顏色回到無處不在等等。
但它只能在第一次使用,並且使得顏色隨處可見,但再次點擊時不會回到白色。
這是服務器代碼:
io.on('connection', function(socket){
socket.on('changeColor', function(data){
io.emit('currentColor',data);
});
});
這是在HTML頁面的JavaScript部分:
var socket = io();
let div = document.querySelector('#colorMe');
socket.on('currentColor',(currentColor)=>{
div.style.background = currentColor;
});
function changeColor(){
let color = (div.style.background == 'blue')? 'white' : 'blue';
socket.emit('changeColor', color);
}
div.addEventListener('click', changeColor);
嘗試在你的'changeColor'函數中放置一個斷點,以查看'currentColor'處理函數中'color'和另一個斷點的值是否爲'currentColor'。 –
@WillReese我做到了,它總是藍色 –
'div.style.background'的價值是什麼? –