2016-06-27 19 views
1

Ich bin mir nicht sicher, dass es ein Fehler ist, aber als ich versuchte, die Version 3.0.0 in Version zu ändern, funktioniert es gut.Fehlercode in jquery-3.0.0.min.js

Ich mache eine Demo mit signalr, wie folgt aus:

Im 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> 

In 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) 
     }); 
    }); 
}); 

Im Hub:

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

Hier ist der er ror Schnappschuss, als ich versuchte 3.0.0 jQuery-Version zu verwenden:

1

Fehlermeldungen:

Uncaught TypeError: a.indexOf is not a function

Uncaught Error: SignalR: SignalR is not loaded. Please ensure jquery.signalR-x.js is referenced before ~/signalr/js.

Meine Frage: Was ist mit der jquery Version 3.0.0 in diesem Fall passieren?

+2

Haben Sie das jquery 3.0 Migrations-Plugin eingebunden? https://github.com/jquery/jquery-migrate#migrate-older-jquery-code-to-jquery-30 –

+0

@ freedomn-m Ihrem Rat folgend, habe ich 'https://code.jquery.com hinzugefügt/jquery-migrate-3.0.0.js auf die Seite und es funktioniert. Vielen Dank! –

+0

Meine Tippfehler beiseite, mein Punkt war, dass das Plugin Ihnen sagen sollte, was sich geändert hat, vertuschen Sie nicht die Änderungen für Sie - überprüfen Sie die console.log - Sie (und Ihre Benutzer) erhalten Warnungen über veraltete Methoden bei jedem Anruf. –

Antwort

1

Wenn Sie das SignalR Plug-in verwenden, jQuery v3.0.0 is apparently unsupported. Die Plug-In-Dokumentation scheint keine Informationen zu Abhängigkeiten zu liefern, aber examples in wiki laden Sie jQuery 1.7.

Sie können das jQuery-Team nicht dafür verantwortlich machen: Sie enthalten detaillierte Versionshinweise, Migrationshandbücher und sogar ein Helfer-Plugin. Wenn Sie nicht sicher sind, ob Ihr Code mit neueren Versionen funktioniert, sollten Sie kein Upgrade durchführen :-)

3

Ersetzen Sie einfach e.load durch $ in Ihrer Signalr-Datei "jquery.signalR-2.2.0.min.js "

+0

Nicht ideal, um die jQuery-Datei zu aktualisieren - mit einer unterstützten Version ist eine bessere Antwort - aber das funktioniert. –