Foros del Web » Programando para Internet » Javascript »

Problemas con varios Divs y javascript

Estas en el tema de Problemas con varios Divs y javascript en el foro de Javascript en Foros del Web. Hola a todos, estoy utilizando una function de javascript para que el texto de la web pueda aumentar o reducir. En mi caso hay 3 ...
  #1 (permalink)  
Antiguo 18/08/2009, 07:54
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 10 meses
Puntos: 0
Problemas con varios Divs y javascript

Hola a todos, estoy utilizando una function de javascript para que el texto de la web pueda aumentar o reducir. En mi caso hay 3 tipos de tamaños, representados por 3 "Aes" (A A A) cada una con un tamaño, para que sea más ilustrativo para el usuario.

La función que utilizo es la siguiente:

<script language="javascript">
function tamFuente (nivel, elem) {
var elemento = document.getElementById(elem)
elemento.className = "nivel"+nivel;
}
</script>

Luego en cada una de las "Aes" coloco la siguiente llamada:

<href="javascript:tamFuente(1,'contenido')"/>
<href="javascript:tamFuente(2,'contenido')"/>
<href="javascript:tamFuente(3,'contenido')"/>

Hay 3 estilos creados, llamados nivel1, 2 y 3, y tan sólo con darle el id="contenido" al DIV funciona correctamente.

Hasta ahí todo perfecto, el problema es que tengo varios divs en la tabla, y claro, no puedo ponerle a todas la id "contenido" porque sabemos que no funciona, hay alguna forma de poder añadir más ids de divs a las 3 llamadas de la funcion?

He probado muchas cosas, del estilo de:

<href="javascript:tamFuente(1,'contenido','conteni do2')"/> ---> dandole el id "contenido2" a otra div que hay, pero nada de nada.

En este caso con 4 divs las que tengo, pero supongo que averiguando la forma de que funcione para 2, ya podré yo mismo hacer que funcione para el nº que desee.

Alguna idea chicos? Estoy algo perdido...


Gracias
  #2 (permalink)  
Antiguo 18/08/2009, 08:14
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 10 meses
Puntos: 57
Respuesta: Problemas con varios Divs y javascript

Y porque no la mandas llamar con el 2o parametro como un arreglo:

Código:
<href="javascript:tamFuente(1,['contenido','contenido2'])"/>
y en la funcion tamFuente recorres ese arreglo
  #3 (permalink)  
Antiguo 18/08/2009, 08:35
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Problemas con varios Divs y javascript

Hola Posman, he probado eso pero no tengo muy claro como tengo que arreglar la función:

<script language="javascript">
function tamFuente (nivel, [elem]) {
var elemento = document.getElementById(elem)
elemento.className = "nivel"+nivel;
}
</script>

Te refieres a poner entre [] el "elem"?

El href ya lo he arreglado tal y como tu lo has puesto, pero poniendo la funcion como te he puesto arriba no funciona... ya te digo que igual no lo estoy haciendo bien.
  #4 (permalink)  
Antiguo 18/08/2009, 10:46
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Problemas con varios Divs y javascript

Plisss, una ayudita!
  #5 (permalink)  
Antiguo 18/08/2009, 11:47
Avatar de goyo_  
Fecha de Ingreso: agosto-2009
Mensajes: 91
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Problemas con varios Divs y javascript

Cita:
Iniciado por Burrako Ver Mensaje
Plisss, una ayudita!
Esta es mi aportacion:

Código HTML:
<body>

<style>
#chico, .chico {font-size: 12px;}
#mediano, .mediano {font-size: 18px;}
#grande, .grande {font-size: 24px;}
</style>

<a href="#" id="chico">A</a>
<a href="#" id="mediano">A</a>
<a href="#" id="grande">A</a>

<p>Hola mundo! Como se encuentran?</p>

<script>
var a = document.getElementsByTagName('a'),
    l = a.length;
    
while (l--) {
	a[l].onclick = function() {
		document.body.className = this.id;
		return false;	
	}
}
</script>

</body> 
Puedes reemplazar document.body con el contenedor maestro de tu pagina por ejemplo document.getElementByiD('contenedor'); y filtrar el registro del evento click unicamente a esos 3 links, e.g. inmediatamente dentro del while loop, pon: if (a[l].className === 'manipularFuente'), depsues arriba <a href="#" id="chico" class="manipularFuente">A</a>
  #6 (permalink)  
Antiguo 26/08/2009, 11:31
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Problemas con varios Divs y javascript

Lo siento chicos, la verdad es que no me entero de nada... Lo pruebo todo pero no me funcionan las cosas... Hasta ahora lo que mejor me funcionaba era lo que yo había hecho, el único problema era que no funcionaba en más de 1 div a la vez. Alguien sería tan amable de ayudarme a arreglar lo que yo estaba haciendo? Agradezco mucho la aportación de goyo_, pero no hago más que liarme más y más.

Alguien puede decirme en qué consiste ese "arreglo" que comentan más arriba y terminar de hacer funcionar la función que he creado para que funcione en más de un div? Ya sea con [ ] o con otra herramienta? Esque irme a otro código totalmente diferente sólo va a empeorar las cosas por aquí...

Disculpad mi ignorancia... pero os agradecería muchísimo una ayudita, por favor.

Abrazos
  #7 (permalink)  
Antiguo 26/08/2009, 11:50
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: Problemas con varios Divs y javascript

a lo que posman se referia era que el segundo parametro es un array de ID's de modo que en la funcion recorres el array con un bucle. y la operacion es basicamente lo que estas haciendo para un solo DIV, pero ahora utilizando el array.
Código:
function tamFuente (nivel, elem) {
while(elem.length) document.getElementById(elem.shift()).className = "nivel"+nivel;
}
como ya habia mencionado, el segundo parametro es una lista de ID's y la utiliza una de las dos formas:
Código:
<a href="#" onclick="tamFuente(1, ['contenido', 'contenido2', 'contenido3', ...]); return false;">A</a>

<a href="#" onclick="tamFuente(1, new Array('contenido', 'contenido2', 'contenido3', ...)); return false;">A</a>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
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 18:45.