Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/08/2007, 08:37
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 2 meses
Puntos: 45
Re: prototype de un objeto HTML

@ caricatos:

Hola otra vez. ¿A qué te refieres con entrecorchetando el nuevo método?

@ MaBoRaK:

Sí, si puedo hacer eso que me comentas, pero no en IE, esa es mi duda. Directamente tipoDIVs es undefined. Si no me equivoco, .constructor es una propiedad que devuelve un [HtmlDIVElement], o lo que ha comentado caricatos (que tampoco sé escribirlo correctamente). No estoy intentando hacer prototype a un DIV directamente, sino a todos los DIVs a la vez

---------------------------------

Bueno, creo que me tendré que quedar con algo como ésto:
Código PHP:
<div id="capa1">Hola!</div>
<
div id="capa2">Qué tal!</div>
<
div id="capa3">Muy bien!</div>

<
script type="text/javascript">

// document.getElementById abreviado
function $(x) { return document.getElementById(x); }


// Definición del método
var functionSetColor = function(col) {
    
this.style.color col;


// Adjuntado del método a todos los DIVs
try {
    var 
tipoDIVs document.createElement("DIV").constructor;
    
tipoDIVS.prototype.setColor functionSetColor;
} catch(
err) {
    var 
DIVs document.getElementsByTagName("DIV");
    for(var 
i in DIVs)
        
DIVs[i].setColor functionSetColor;
}

$(
"capa1").setColor("orange");
$(
"capa2").setColor("red");
$(
"capa3").setColor("#925ff7");

</script> 

Aunque ese try & catch podría meterse en una función y reutilizarse para cualquier tipo HTML (divs, inputs...) y cualquier función que no sea sólo functionSetColor, eso luego lo haré.


A ver si se nos ocurre algo un poco más cómodo.


Gracias por responder.
Un saludo!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.