Boton HTML

Iniciado por maikmilk, 21 Enero 2014, 23:37 PM

0 Miembros y 1 Visitante están viendo este tema.

maikmilk

Hola buenas mi duda es la siguiente.

Tengo un botón que al pulsarlo llama a una función javascript que modifica el tamaño de un <div>, hasta aquí todo perfecto el problema viene en que no se que evento utilizar para que al volver a pulsar el botón el tamaño del div vuelva al original o si se puede hacer con un evento. Alguna idea?

engel lex

no puedes con un evento directo, pero te doy 3 opciones...

1.- usa una variable global declarada desde el inicio tipo
Citarvar tamano_div="pequeño"
y cuando lo trabajes cambias "pequeño" por "grande",  revisas y cambias su valor cada vez que llames al div
2.- usa un campo hidden y haces lo mismo que con la variable global (algunas personas no le gustan las variables globales, aquí su solución)

3.- lee las propiedades del div, por ejemplo, lees si width y si es el tamaño pequeño pasas al grande y viceversa
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

sexto

Yo alguna vez he tenido que hacer algo parecido (aunque no igual) y lo que hago es, primero, no lo hago grande "a pelo", sino que creo 2 clases en el CSS, una para cada tamaño (en tu caso), por defecto la pequeña supongo. Luego hago una función para JQuery que cambie entre una clase u otra, en tu caso sería algo parecido a:

$.fn.toggleSize = function() {
   if(this.hasClass('little')) {
      this.addClass('big');
      this.removeClass('little');
   }else {
      this.addClass('little');
      this.removeClass('big');
   }
};


Y luego al div que quieres cambiar de tamaño y al botón les pones una id, y en el javascript pones:

$('#button').click(function () {
   $('#div').toggleSize();
});

No sé si te funcionará exactamente así, ya que lo he escrito de memoria, pero no será muy distinto.

Evidentemente para ello tienes que usar JQuery.

maikmilk

Muchas gracias, esa ultima opción ya la tenia en mente, pero bueno quería saber si existía una opción mas rápida. GRACIAS