Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Cambiar div height con javascript

Estas en el tema de Cambiar div height con javascript en el foro de Javascript en Foros del Web. Hola, no sé si estoy en el lugar indicado pero tampoco se como se llama lo que quiero hacer. Llevo un tiempo rompiéndome la cabeza ...
  #1 (permalink)  
Antiguo 05/08/2014, 00:17
 
Fecha de Ingreso: agosto-2014
Ubicación: Montréal
Mensajes: 6
Antigüedad: 9 años, 8 meses
Puntos: 0
Pregunta Cambiar div height con javascript

Hola,
no sé si estoy en el lugar indicado pero tampoco se como se llama lo que quiero hacer.
Llevo un tiempo rompiéndome la cabeza con este código sin conseguirlo, así que recuro a solicitar su amable ayuda.

La idea es obtener un listado de elementos que consigo de una tabla sql.
Quisiera que cada elemento de la lista tenga una pestaña que se delegue al apretar un botón.
Algo así para cada elemento de la lista:

<Boton><Div que se deplega al apretar boton><elemento>

Tengo un código que funciona con los Div desplegables pero mi problema es que cuando aprieto un botón, sin importar el elemento que le corresponda, se despliegan todas las pestañas de todos los elementos.

Aquí les pongo mi código para que entiendan mejor la idea. El div desplegable es el que tiene la etiqueta class="panhora".

Código HTML:
<script>
(function($){
$(document).ready(function() {
$("div.panhora").height(0);
$("div.panhora_button").click(function(){
$("div.panhora").animate({
height: "50px",
opacity: 0.9
}, 1200);
$("div.panhora_button").toggle();
});
$("div#hide_button").click(function(){
$("div.panhora").animate({
height: "0px",
opacity: 0
}, 1200)
});
});
})(jQuery);
</script>

<style type="text/css">
.panhora {
    background-color:#BCBCBC;
    height:0px;
    width:200px;
    margin:10px;
    color:#fff;
	overflow:hidden;
}
</style>

<?php
$editFormAction = $_SERVER['PHP_SELF'];

$link = mysqli_connect('localhost', 'root', '', 'bdredsocial');
$consulta = "SELECT * FROM Tabla ORDER BY orden";
$resultado = mysqli_query($link, $consulta);
$elementos = null;
while ($datos = mysqli_fetch_assoc($resultado)){
	$elementos[$datos['id']] = '<div id="hora">
	<div class="panhora_button" style="display: visible; cursor:pointer;">ESTO ES UN BOTON(Abrir)</div>
	<div class="panhora_button" id="hide_button" style="display: none; cursor:pointer;">ESTO ES UN BOTON(Cerrar)</div>
	<div class="panhora" id="elemento-'.$datos['id'].'">Cambiar hora:<br />
		<form action=" '.$editFormAction.'" method="post" name="form1" id="form1">
		<table align="center"><tr valign="baseline">
		<td><input type="time" name="hora" value="" size="28" /></td>
		<td><input type="submit" name="Bonton1" id="Boton1" value="Actualizar" /></td></tr>
		</table>
		<input type="hidden" name="MM_insert" value="form1" />
		</form>
	</div>
</div>
<div id="Texto">'.$datos['Texto'].'</div>';
}?>
<ul id="lista"><?php
if(!empty($elementos)) {
	foreach ($elementos as $id => $elemento)
		echo '<li id="'.$id.'">'.$elemento.'</li>';
}?>
</ul> 
Se me ocurría que debería asignar un id a cada div "panhora" y de alguna forma recuperar este id con la función javascipt al presionar el botón correspondiente a ese elemento, pero eso es lo que no sé hacer

Si me pueden ayudar a resolver esto, se los agradecería un montoon!

Última edición por pabloabran08; 05/08/2014 a las 00:21 Razón: el código se veía mal
  #2 (permalink)  
Antiguo 05/08/2014, 00:51
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cambiar div height con javascript

Con el sueño que tengo a la 1:48 am, se me ocurre que crees un pseudo-atributo en cada botón y le asignes el id del <div> que deseas mostrar/ocultar.

Código HTML:
Ver original
  1. <div class="panhora_button" style="display: visible; cursor:pointer;" data-id = "elemento-'.$datos['id'].'">
  2.     ESTO ES UN BOTON(Abrir)
  3. </div>

Y con el método data, recuperas dicho valor.

Código Javascript:
Ver original
  1. $("div.panhora_button").click(function(){
  2.     var id = $(this).data("id");
  3.     $("#" + id).animate({
  4.         height: "50px",
  5.         opacity: 0.9
  6.     }, 1200);
  7.     $("div.panhora_button").toggle();
  8. });

Aunque no me parece correcto usar elementos <div> como botones, para eso existen elementos <button> u otros que no sean necesariamente elementos de bloque cuyo propósito es distinto.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 05/08/2014, 07:55
 
Fecha de Ingreso: agosto-2014
Ubicación: Montréal
Mensajes: 6
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Cambiar div height con javascript

Muchas gracias! Me funcionó perfecto, y tienes razón voy a cambiar esos div por botones que es mas adecuado.
Saludos.

Etiquetas: ayuda!!, desplegable, divs, funcion, javascript+php, panel
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 16:03.