Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Aplicar el mismo efecto a dos div que actuen de forma independiente.

Estas en el tema de Aplicar el mismo efecto a dos div que actuen de forma independiente. en el foro de Frameworks JS en Foros del Web. Hola amigos, se que debe ser una tonteria, pero no conozco aun suficiente sobre JS, pero quiero conseguir lograr algo.. quiero conseguir el tipico efecto ...
  #1 (permalink)  
Antiguo 25/12/2014, 05:43
Avatar de josema12441  
Fecha de Ingreso: diciembre-2014
Ubicación: Alemania
Mensajes: 29
Antigüedad: 10 años
Puntos: 2
Aplicar el mismo efecto a dos div que actuen de forma independiente.

Hola amigos, se que debe ser una tonteria, pero no conozco aun suficiente sobre JS, pero quiero conseguir lograr algo.. quiero conseguir el tipico efecto que das click en una parte y se abre un cuadro con infromacio.. ya lo tengo. pero al querer aplicar otro cuadro igual, pero aparte. al hacer click en el primero se abren los dos! Como hago para q actuen de forma independiente???

el script es este:

Cita:
<script type="text/javascript">
$(document).ready(function()
{
$(".dhead").click(function()

{
$(".dbody").slideToggle("slow");

});



});

</script>
el html :

Cita:
<div class="container">
<div class="dhead">
<div>
<h2>--> Letra <--</h2>
</div>

</div>
<div class="dbody">
<div id="texto">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Maiores doloribus consequuntur ullam non est animi nihil iusto repellendus cum asperiores impedit at deleniti tenetur, magnam quos eveniet eius officia fugit.</p> </div>

</div>
</div>
( EL otro es exactamente igual, solo cambia la informacion!!,, que deberia hacer? Graacias!
  #2 (permalink)  
Antiguo 25/12/2014, 06:10
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Aplicar el mismo efecto a dos div que actuen de forma independiente.

Buenas

Lo que tienes que hacer es crear otra clase para el segundo botón y cuadro de información y en js llamar a la clase que corresponde ej:
<script>
$(document).ready(function() {
$(".dhead").click(function() {
$(".dbody").slideToggle("slow");

});

$(".dhead2").click(function() {
$(".dbody2").slideToggle("slow");

});


});
</script>

y en el body:
--------------
<div class="container">
<div class="dhead">
<div>
<h2>--> Letra <--</h2>
</div>
</div>
<div class="dbody">
<div id="texto">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Maiores doloribus consequuntur ullam non est animi nihil iusto repellendus
cum asperiores impedit at deleniti tenetur, magnam quos eveniet eius officia fugit.
</p>
</div>
</div>
<div class="dhead2">
<div>
<h2>--> Letra2 <--</h2>
</div>
</div>
<div class="dbody2">
<div id="texto">
<p>
Otro texto de prueba
</p>
</div>
</div>
</div>

Un saludo
  #3 (permalink)  
Antiguo 26/12/2014, 18:56
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Aplicar el mismo efecto a dos div que actuen de forma independiente.

No es necesario asignar clases distintas, basta con que tomes al elemento al que se le dio el clic mediante la propiedad target del objeto del evento, el cual hace referencia al elemento en el que se produjo el evento.

Código Javascript:
Ver original
  1. $(".dhead").click(function(event){
  2.     if (event.target.className == "dbody"){
  3.         $(event.target).slideToggle("slow");
  4.     }
  5. });

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
  #4 (permalink)  
Antiguo 30/12/2014, 10:52
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 11 meses
Puntos: 206
Respuesta: Aplicar el mismo efecto a dos div que actuen de forma independiente.

jQuery linkea automáticamente el target: dentro de una función anónima de jquery, $(this) es el objeto jQuery que lanzó el evento.

ASí que sólo se necesita un $(this).slideToggle("slow");
  #5 (permalink)  
Antiguo 30/12/2014, 11:14
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Aplicar el mismo efecto a dos div que actuen de forma independiente.

Cita:
Iniciado por marlanga Ver Mensaje
jQuery linkea automáticamente el target: dentro de una función anónima de jquery, $(this) es el objeto jQuery que lanzó el evento...
Eso sería en el caso de que se haya vinculado el evento al elemento en cuestión, pero mira cómo lo está haciendo.

Eso aplicaría para esto (que sería lo más adecuado):

Código Javascript:
Ver original
  1. $(".dbody").on("click", function(){
  2.     $(this).slideToggle("slow");
  3. });
__________________
«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
  #6 (permalink)  
Antiguo 17/09/2015, 10:54
 
Fecha de Ingreso: febrero-2015
Mensajes: 3
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Aplicar el mismo efecto a dos div que actuen de forma independiente.

Cita:
Iniciado por Alexis88 Ver Mensaje
No es necesario asignar clases distintas, basta con que tomes al elemento al que se le dio el clic mediante la propiedad [URL="http://api.jquery.com/event.target/"][inline]target[/inline][/URL] del objeto del evento, el cual hace referencia al elemento en el que se produjo el evento.

Código Javascript:
Ver original
  1. $(".dhead").click(function(event){
  2.     if (event.target.className == "dbody"){
  3.         $(event.target).slideToggle("slow");
  4.     }
  5. });

Saludos
Yo tengo una duda similar, la diferencia es que la acción la emite un objeto distinto y otro objeto es el que la aplica...
http://www.forosdelweb.com/f91/como-aplico-mismo-efecto-jquery-dos-objets-divs-1137312/

Etiquetas: css, html, javascript, jquery
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 13:17.