【问题标题】:Jquery and Socket.io conflictJquery 和 Socket.io 冲突
【发布时间】:2014-09-28 16:57:36
【问题描述】:

我正在尝试使用 ImpactJS,一个 JS 框架。 我想添加 socket.io 函数。 一旦我添加了socket.io,就会出现错误

Uncaught ReferenceError: sock is not defined jquery-1.7.1.min.js:4

我使用 soket.io 的班级:here(文件结尾)

我的 index.html :here

我不明白为什么我不能同时使用两者。 谢谢你的帮助。

【问题讨论】:

    标签: jquery socket.io conflict impactjs


    【解决方案1】:

    索引线 35

    var sock = io.connect('http://localhost:3000');
    

    类第 134 行

    sock.emit('update', this.padmap, this.id);
    

    sock 不在窗口范围内,所以这不起作用。将var sock 更改为window.sock 并将sock.emit 更改为window.sock.emit

    但是,不赞成使用全局变量。如果你使用全局变量,那你就做错了。

    【讨论】:

    • 我明白,但更改后我还有其他错误消息: Uncaught SyntaxError: Unexpected token 。 localhost/:35 Uncaught TypeError: Cannot read property 'emit' of undefined Player.js:52 我的新文件:Player.js:link index.html:link
    • window.sock 未定义。弄清楚为什么没有定义 window.sock 。也不要像我说的那样使用窗口。你不应该使用全局变量。
    【解决方案2】:

    我发现了问题。 Socket 在 index.html 中加载,而不是在 Player.js 中。

    地图编辑器无法加载套接字。 在 Player.js 中解决这个问题:

    if (typeof sock != 'undefined')
    sock.emit('update', this.padmap, this.id);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      • 2015-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多