Foros del Web » Programando para Internet » Javascript »

Doctype y javascript

Estas en el tema de Doctype y javascript en el foro de Javascript en Foros del Web. Hola, foreros, Me he vuelto loco buscando el error, jeje, pero tengo un javascript que solo funciona si quito el doctype, sea cual sea el ...
  #1 (permalink)  
Antiguo 09/09/2008, 00:19
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Doctype y javascript

Hola, foreros,

Me he vuelto loco buscando el error, jeje, pero tengo un javascript que solo funciona si quito el doctype, sea cual sea el tipo de doctype. Es que es raro raro...

Mirar el script, no lo puedo entender:
Código PHP:
        //Si el navegador del cliente es Mozilla la variable siguiente valdrá true
        
var moz document.getElementById && !document.all;
        
//Flag que indica si estamos o no en proceso de arrastrar el ratón
        
var estoyArrastrando false;
        
//Variable para almacenar un puntero al objeto que estamos moviendo
        
var dobj;
        var 
newLeft 200;
        function 
arrastrarRaton(e){
        
campo_posicion_js document.getElementById('campo_posicion');
        
            if (
estoyArrastrando newLeft >= 200 newLeft <= 300 ) {
                
newLeft moz e.clientX event.clientX;

                
dobj.style.left newLeft parseInt(dobj.style.width)/2;
                
campo_posicion_js.value=newLeft-200;
                return 
false;
            }
            else{
                if (
newLeft 200
                    {
                        
newLeft 200;
                        
dobj.style.left 200;
                        
campo_posicion_js.value=newLeft-200;
                        
event.clientX 200;
                        
                    }
                
                    if (
newLeft 300
                    {
                        
newLeft 300;
                        
dobj.style.left 300;
                        
campo_posicion_js.value=newLeft-200;
                        
event.clientX 300;
                        
                    }
                }
        }


        function 
soltarBoton(e) {    
            
estoyArrastrando false;
        }
        
        
        function 
presionarBoton(e) {
            
//Obtenemos el elemento sobre el que se ha presionado el botón del ratón
            
var fobj moz e.target event.srcElement;
            
            
// Buscamos el primer elemento en la que esté contenido aquel sobre el que se ha pulsado
            // que pertenezca a la clase objMovible. 
            
while (fobj.tagName.toLowerCase() != "html" && fobj.className != "objMovible") {
                
fobj moz fobj.parentNode fobj.parentElement;
            }
            
            
// Si hemos obtenido un objeto movible...            
            
if (fobj.className == "objMovible") {
                
// Activamos el flag para indicar que se empieza a arrastrar
                
estoyArrastrando true;
                
// Guardamos un puntero al objeto que se está moviendo en la variable global
                
dobj fobj;

                
// Devolvemos false para no realizar ninguna acción posterior
                
return false;
            }
        }
        
        
document.onmousedown presionarBoton;
        
document.onmouseup soltarBoton;
        
document.onmousemove arrastrarRaton;
        
        
        

        
document.oncontextmenu=new Function("return false"); 
¿Sabeis por que no va?, solo me lo puedo tomar a broma, pues de llorar ya me aburri,
  #2 (permalink)  
Antiguo 09/09/2008, 06:38
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Doctype y javascript

¿No será porque aquí el operador debería ser && (AND)?:
Código PHP:
if (estoyArrastrando newLeft >= 200 newLeft <= 300 
Así:
Código PHP:
if (estoyArrastrando && newLeft >= 200 && newLeft <= 300 
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 09/09/2008, 08:48
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Doctype y javascript

Hola David el Grande,

No no es eso, jeje... es que no tiene sentido, jeje... lo peor es que he buscado por google y le ocurre a bastante gente, pero no he encontrado ninguna solucion...

Ya no se que pensar, pues es raro, raro, raro, jeje...
  #4 (permalink)  
Antiguo 09/09/2008, 09:11
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Doctype y javascript

Hola salbatore, debes poner las unidades de posición cada vez que asignes un valor a left:

Código:
dobj.style.left = newLeft - parseInt(dobj.style.width)/2 + "px";

dobj.style.left = 200 + "px"; 

dobj.style.left = 300 + "px";
Y así secesivamente...como ya sabes, los DocType son un poco estrictos con eso.

Saludos!!
  #5 (permalink)  
Antiguo 10/09/2008, 14:56
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Doctype y javascript

Hola jseros:

Urra!, urra!, funciona por fin... muchisimas gracias... es que me estaba volviendo loco... es que me parecia raro raro, jeje...

Bueno, hasta pronto.
  #6 (permalink)  
Antiguo 10/09/2008, 14:58
Avatar de jseros  
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: Doctype y javascript

Vale salbatore...
  #7 (permalink)  
Antiguo 10/09/2008, 19:40
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Doctype y javascript

Seee.... son cositas que parecen no hacer diferencia, pero la hacen. Cosas que pasan...
__________________
twitter: @imbuzu
  #8 (permalink)  
Antiguo 10/09/2008, 20:45
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Doctype y javascript

Hola de nuevo...

Es verdad buzu... hoy me he estado tambien volviendo loco por poner de este modo las medidas de pixeles de un DOM:

width: 750.px cuando todos sabemos que es 750px

Pues por esa tonteria unas horas... ahora que escribo horas me da verguenza, jeje...

Bueno hasta la siguiente... jeje...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:15.