Conflicto de script Jquery con SignalR

Me estoy topando con un problema que parece que debería ser relativamente simple de resolver, pero hasta ahora la respuesta me ha eludido.

Estoy usando SignalR para devolver una nueva vista parcial a la página principal. La función de cliente que actualiza la etiqueta div con una nueva vista parcial se llama cuando mi base de datos se actualiza con nueva información. Hasta ahora tan bueno.

Ahora quiero agregar más código JQuery para ocultar / mostrar filas secundarias en mis tablas que aparecen en la vista parcial.

El problema es que hasta ahora solo puedo hacer que uno u otro script funcione. Si la función de mostrar / ocultar de la tabla funciona, rompe mi script de signalR y, por lo tanto, ya no recibo vistas parciales actualizadas cuando el servidor las activa. Del mismo modo, cuando signalR funciona correctamente, ya no puedo activar la función mostrar / ocultar.

SignalR parece usar una versión anterior de JQuery, sin embargo, para que funcionen mis scripts agregados, debo agregar una referencia a jquery-1.10.2. SignalR no necesita una referencia jquery, solo necesita la referencia jquery-signalR-2.1.2.

Todos estos scripts se encuentran en la página principal en la que aparece la vista parcial, no en la vista parcial.

También he intentado hacer JQuery sin conflicto con ambos scripts en vano.

Parece tener algo que ver con que se haga referencia a dos versiones de JQuery al mismo tiempo, pero no estoy seguro de a dónde ir para hacer que ambos scripts trabajen juntos. Cualquiera que sea el script que se coloque primero, es el que funciona.

Aquí está el script signalR con solo sus dependencias:

    $(function () { // Declare a proxy to reference the hub. var notifications = $.connection.monitoringHub; //debugger; // Create a function that the hub can call to broadcast messages. notifications.client.updateDetails = function () { getDetails() }; // Start the connection. $.connection.hub.start().done(function () { //alert("connection started") getDetails(); }).fail(function (e) { alert(e); }); }); function getDetails() { var tbl = $('#systemDetails'); $.ajax({ url: '/Monitoring/GetDetails/@Model.Customer.SONumber.ToString()', contentType: 'application/html ; charset:utf-8', type: 'GET', dataType: 'html' }).success(function (result) { tbl.empty().append(result); }).error(function () { }); }  

Aquí está mi script de usuario con la dependencia requerida:

   $("body").on("click", "#deviceDetail", function () { $(this).closest('tr').next().toggle("slow"); $(this).toggleClass("glyphicon-plus-sign glyphicon-minus-sign"); });  

El evento de clic jquery $(".glyphicon-plus-sign").click solo está conectado para los elementos que existen en el DOM cuando el script se ejecuta inicialmente (o la página se carga por primera vez). Cualquier elemento agregado a su mesa a través de AJAX en un momento posterior no tendrá el evento conectado.

No tengo tu html, pero puedes intentar algo como a continuación:

 $("body").on("click",".glyphicon-plus-sign", function () { $(this).closest('tr').next().toggle("slow"); }); 

Nota: el cuerpo probablemente no sea la mejor opción, la idea aquí es agregar el evento de clic a un elemento que existe en el DOM antes de la llamada AJAX. Una mejor opción puede ser la etiqueta de la tabla principal.