我不明白为什么在一个页面上更新标签会影响另一个页面上的标签。我不认为DOM是这样分享的。打开一个标签或页面会成功将标签更新为'player1',但是当我打开另一个标签/页面时,它会将两个标签更新为'player2'。
<script>
var socket = io.connect('http://localhost:3000');
socket.on('connect', function() {
socket.emit('join');
socket.on('joinSuccess', function (playerSlot) {
if (playerSlot === 'player1') {
$("#playerID").text("you are player1");
} else if (playerSlot === 'player2') {
$("#playerID").text("you are player2");
}
}); //end joinSuccess
}); //end connect
我只是想通知用户他们是哪个球员。
溶液:
else if (playerSlot === 'player2') {
var elm = $("#playerID");
var empty = !elm.text().trim();
if (empty) {
elm.text("you are " + playerSlot);
}
}
答案 0 :(得分:1)
你是否正在推动加入成功&#39;新用户加入时的消息?在这种情况下,此消息将传递给具有相同playerSlot值的两个页面。因此,所有页面都会更新最后加入的玩家名称。
在这种情况下,你可以用简单的条件来处理这个问题,
socket.on('joinSuccess', function (playerSlot) {
var elm = $("#playerID");
if (!elm.text().trim()) {
elm.text("you are " + playerSlot);
}
});