2012-08-14 14 views
12

Utilizo JQuery UI 1.8.10 y jquery más reciente.JQuery UI 1.8.10 No se puede leer la propiedad '3' de undefined

Mi código es:

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/jquery-ui.js"></script> 
<script type="text/javascript" src="/cms/ww.admin/login/login.js"></script> 
</head> 
<body> 

<div id="header"></div> 
<?php 
    if(isset($_REQUEST['login_msg'])) 
    { 
     require SCRIPTBASE.'cms/ww.incs/login-codes.php'; 
     $login_msg = $_REQUEST['login_msg']; 
     if(isset($login_msg_codes[$login_msg])) 
     { 
      echo '<script>$(function(){$("<strong>'.htmlspecialchars($login_msg_codes[$login_msg]).'</strong>").dialog({modal:true});});</script>'; 
     } 

?> 

¿Por qué esto no puede dar una propiedad de lectura '3' del error indefinido?

el archivo que da el error es jquery-ui.js on line 186

bien ahora que lo cambié a:

</head> 
<body> 

<div id="header"></div> 
<div id="login-msg"></div> 
<?php 
if(isset($_REQUEST['login_msg'])){ 
require SCRIPTBASE.'cms/ww.incs/login-codes.php'; 
$login_msg=$_REQUEST['login_msg']; 
if(isset($login_msg_codes[$login_msg])){ 
    echo '<script>$(function(){ 
        $("#login-msg").html("<strong>'.htmlspecialchars($login_msg_codes[$login_msg]).'</strong>").dialog({modal:true});});</script>'; 
} 
} 
?> 

Pero sigue siendo el mismo error

+0

¿Estás seguro de que no es necesario/antes de ' 'cms/ww.incs/login-codes.php'; –

+1

¿Qué línea/archivo te da ese error? – Jeemusu

+0

no, no necesito a/antes de cms porque thas in de scriptbase. –

Respuesta

20

Es un error de su jQueryUI que usa un selector de datos (si sube en la pila de llamadas lo verá) que está obsoleto/no es compatible con la última jQuery. Pruebe con esta jQueryUI:

http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.22/jquery-ui.min.js 

ejemplo aquí:

http://jsfiddle.net/techunter/RyUVq/

+2

Puede escribir $ ("

texto

") .dialog(), pero de hecho no es recomendable ya que no puede realizar ninguna acción en ese diálogo más tarde encendido (sin selector). –

+0

thx para señalar eso – TecHunter

+1

Gracias mi héroe yo como googlear y tratar de encontrar una solución a la mañana gracias. –

0

Puede que no sea la fuente de su problema, pero tal vez establecer un div para su widget .dialog() puede ayudarlo.

Su línea js $("<strong>'.htmlspecialchars($login_msg_codes[$login_msg]).'</strong>").dialog({modal:true} parece estar utilizando un mensaje simple, que en la mayoría de los casos funciona.

Se puede tratar de cambiar el uso de esta línea en su lugar:

$(function() 
{ 
    $("#header") // or any div you have 
    .html("<strong>'.htmlspecialchars($login_msg_codes[$login_msg]).'</strong>") 
    .dialog({modal:true}); 
}); 

También, asegúrese de que sus "/cms/ww.admin/login/login.js" no es el origen del error, el error de js la consola se pierde fácilmente y puede apuntarle a jquery-ui.js mientras el error está en otra parte.

+0

Elimine el comentario, .html debe seguir el selector si se coloca en la misma línea. Agregué una línea a mi respuesta, ¿qué hay en tu archivo login.js? –

+0

Creo que se olvidó de a) después de la función (que debería ser función() pero todavía no está funcionando –

+0

Actualizado, gracias! ¿Ha intentado eliminar el .dialog() parte de la línea? ¿Todavía tiene errores sin ? Descartaría esta parte y su error vendría definitivamente de login.js –

0

confirmo el tema uncompatibility

esto no es jQuery (1.8.0) que trabajan. intentado con jquery-1.8.0 y jquery-ui-1.8.4

Cuestiones relacionadas