2011-05-25 8 views
8

He estado usando jQuery UI cuadros de diálogo en mi aplicación, y todo estaba bien hasta hoy cuando traté de abrir un cuadro de diálogo, y no pasó nada . En la consola, era:jquery ui diálogo dejado de funcionar - da error "no se puede llamar al método 'mouseover' de indefinido"

no detectada TypeError: No se puede llamar al método 'mouseover' de indefinidos - jquery-ui.js, la línea 162

y

obtener datos: undefined (no definido) - Esto no tenía un número de línea, en Chrome, solo decía "datos:".

El código en jquery-ui.js que arroja el error está en el código de tamaño variable:

this._handles.mouseover(function(){...}); 

Mi código para llamar el cuadro de diálogo es:

$('.popup-trigger').click(function(){ 
    var target = $(this).attr('href'); 
    $(target).dialog({ 
     width:650, 
     minWidth:500, 
     minHeight:250, 
    }); 
    return false; 
}); 

Cuando el atributo href. los elementos emergentes son algo así como "#dialog". Este código funcionaba bien hasta hoy.

He trabajado mucho en la aplicación desde la última vez que trabajé correctamente, por lo que no puedo identificar ni una sola cosa que haya cambiado.

¿Alguien puede indicarme la dirección correcta? ¿Qué es este error

Editar - después de otra mirada, he descubierto que este error solo ocurre la PRIMERA vez que hace clic en el botón. El segundo clic muestra con éxito el diálogo sin errores.

+3

La coma después de minHeight no debería estar allí. No puedo decir si eso lo está causando, pero no debería tener una coma después de su última configuración. – jefffan24

+1

@ jefffan24 tiene razón, esto puede causar un error porque cuando usa una coma, el analizador espera otra propiedad – Andre

+0

Gracias, desafortunadamente ese no fue el problema. Quitar la coma no lo solucionó. – Will

Respuesta

11

Hoy tengo exactamente el mismo problema.

Gasto aproximadamente una hora depurando mi código y termina encontrando que una de mis funciones personalizadas tiene un conflicto de nombres con la función jquery.ui. En mi caso, el nombre conflictivo es 'disableSelection'.

Espero que ayude en su caso.

+1

Increíble, tengo exactamente la misma función nombrada, 'disableSelection'. Ese fue el problema. ¡Gracias! – Will

+0

He encontrado que reorganizar el orden en que se han incluido mis archivos JS solucionó el problema. El código con la función personalizada disableSelection in está ahora después de jQuery y antes de la interfaz de usuario jQuery, y el problema ha desaparecido. – Will

Cuestiones relacionadas