Javascript 为什么不是';第二个浏览器是否正在更新我的图像的位置?
我为一个班级项目做了一个跳棋游戏。我希望能够使用socket.io与其他人一起玩,但由于某些原因,图像无法在第二个浏览器上更新 server.jsJavascript 为什么不是';第二个浏览器是否正在更新我的图像的位置?,javascript,express,socket.io,mean-stack,Javascript,Express,Socket.io,Mean Stack,我为一个班级项目做了一个跳棋游戏。我希望能够使用socket.io与其他人一起玩,但由于某些原因,图像无法在第二个浏览器上更新 server.js app.use(express.static(__dirname + "/static")); app.set("views", __dirname + "/views"); app.set("view engine", "ejs"); io.sockets.on('connection', function (socket) { console
app.use(express.static(__dirname + "/static"));
app.set("views", __dirname + "/views");
app.set("view engine", "ejs");
io.sockets.on('connection', function (socket) {
console.log("Working now?");
socket.broadcast.emit('update_position', lastPosition);
socket.on('receive_position', function (data) {
lastPosition = data;
socket.broadcast.emit('update_position', data);
});
});
index.ejs
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<script src="/socket.io/socket.io.js"></script>
<script>
$(document).ready(function () {
var socket = io.connect();
console.log("Hello");
socket.on('update_position', function (data) {
$(data.id).css('left', data.x);
$(data.id).css('top', data.y);
var x = data.x;
var y = data.y;
console.log(data);
// jquery code to move div here
});
$(".drag").draggable().click(function () {
var coord = $(this).offset();
$("#left").val(coord.left);
$("#top").val(coord.top);
console.log(coord);
socket.emit('receive_position', { x: coord.left, y: coord.top, id:
this.id });
});
});
</script>
功能allowDrop(ev){
ev.preventDefault();
}
功能阻力(ev){
ev.dataTransfer.setData(“文本”,ev.target.id);
}
功能下降(ev){
ev.preventDefault();
var data=ev.dataTransfer.getData(“文本”);
ev.target.appendChild(document.getElementById(数据));
}
$(文档).ready(函数(){
var socket=io.connect();
console.log(“你好”);
socket.on('update_position',函数(数据){
$(data.id).css('left',data.x);
$(data.id).css('top',data.y);
var x=data.x;
var y=data.y;
控制台日志(数据);
//将div移到此处的jquery代码
});
$(“.drag”).draggable()。单击(函数(){
var coord=$(this.offset();
$(“#左”).val(左坐标);
$(“#top”).val(coord.top);
控制台日志(coord);
emit('receive_position',{x:coord.left,y:coord.top,id:
这是(id});
});
});
每当我点击并按住图像时,我也会收到此错误。然而,我最终能够移动图像并将其放置在板上
未捕获的TypeError:无法读取未定义的属性“setData”
您提供的所有代码都不包含
setData
。因此,不可能确定这导致问题的原因。对此表示抱歉。我更新了代码。