【问题标题】:Error code in jquery-3.0.0.min.jsjquery-3.0.0.min.js 中的错误代码
【发布时间】:2016-07-19 20:45:43
【问题描述】:

我不确定这是不是一个错误,但是当我尝试将版本 3.0.0 更改为版本 2.2.3 时,它工作正常。

我正在用 signalr 做一个演示,像这样:

在html中:

<button>Click me</button>
// <script src="https://code.jquery.com/jquery-3.0.0.min.js"></script>
<script src="https://code.jquery.com/jquery-2.2.3.min.js"></script>
<script src="~/scripts/jquery.signalR-2.2.0.js"></script>
<script src="~/signalr/hubs"></script>
<script src="~/scripts/app.js"></script>

app.js:

var hub = $.connection.hub;
var chat = $.connection.chat;

hub.start().done(function () {
    $('button').click(function () {
        chat.server.sayHello('Hermione').done(function (msg) {
            alert(msg)
        });
    });
});

在中心:

public string SayHello(string name)
{
    return "Hello " + name;
}

这是我尝试使用jquery版本3.0.0时的错误快照:

错误信息:

未捕获的类型错误:a.indexOf 不是函数

未捕获的错误:SignalR:未加载 SignalR。请确保 jquery.signalR-x.js 在 ~/signalr/js 之前被引用。

我的问题:在这种情况下,jquery 版本3.0.0 会发生什么?

【问题讨论】:

  • 您是否包含了 jquery 3.0 迁移插件? github.com/jquery/…
  • @freedomn-m 根据您的建议,我已将https://code.jquery.com/jquery-migrate-3.0.0.js 添加到页面中,并且可以正常工作。谢谢!
  • 除了我的错字之外,我的意思是插件应该告诉你发生了什么变化,而不是为你掩盖变化——检查 console.log——你(和你的用户)会收到关于过时方法的警告每次通话。

标签: jquery signalr jquery-3


【解决方案1】:

只需在信号器文件“jquery.signalR-2.2.0.min.js”中将 e.load 替换为 $

【讨论】:

  • 不适合更新 jQuery 文件 - 使用受支持的版本是更好的答案 - 但这确实有效。
  • signalR 2.2.3 中仍然存在问题 - 这个 hack 修复了它。
【解决方案2】:

如果您使用的是SignalR 插件,jQuery v3.0.0 is apparently unsupported。插件文档似乎没有提供有关依赖项的任何信息,但 examples in wiki 加载 jQuery 1.7。

你不能为此责怪 jQuery 团队:他们提供了详细的发行说明、迁移指南,甚至还有一个帮助插件。如果您不确定您的代码是否适用于较新的版本,则不应升级:-)

【讨论】:

    猜你喜欢
    • 2014-02-17
    • 2011-05-30
    • 2012-08-22
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多