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

acceder al mismo div desde diferentes links?

Estas en el tema de acceder al mismo div desde diferentes links? en el foro de Frameworks JS en Foros del Web. Hola, tengo unas noticias en una base de datos que saco con php, en un principio solo muestro los titulos, la foto de portada y ...
  #1 (permalink)  
Antiguo 05/08/2010, 12:22
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 13 años, 8 meses
Puntos: 2
acceder al mismo div desde diferentes links?

Hola,
tengo unas noticias en una base de datos que saco con php, en un principio solo muestro los titulos, la foto de portada y los resumenes.

Consigo que si hago click en el titulo me salga la noticia entera donde quiero y que al volver a clickar o darle a cerrar se cierre. Hasta aquí todo bien.

Lo que no consigo (de hecho no se si se puede) es poder clickar en el titulo o en la imagen indistintamente y que se expanda la noticia entera. Cuando le doy a la imagen me sale el # en la url pero no hace nada.
Otra opcion que habia pensado era meterlo todo en un div y que al clickar ese div (en qualquier parte, así se incluye el titulo, la foto y el resumen) se muestre la noticia.

Os pongo el codigo de esa parte.

Código Javascript:
Ver original
  1. $(function(){
  2.     $("#mostrar1").click(function(event) {
  3.     event.preventDefault();
  4.     $("#caixanew1").slideToggle();
  5. });
  6. $("#caixanew1 a").click(function(event) {
  7.     event.preventDefault();
  8.     $("#caixanew1").slideUp();
  9. });
(caixanew i mostrar)
Hay 5 elementos numerados (caixanew i mostrar) pq listo las noticias de 5 en 5, todas con el mismo codigo. En el php le indico cual es cual.

Código PHP:
Ver original
  1. $i=1;
  2.     $resultats=mysql_query("SELECT newid FROM news");
  3.     while($row=mysql_fetch_array($resultats))
  4.     {
  5.        
  6.         $nid=$row[newid];
  7.         $result2=mysql_query("SELECT ruta,nom FROM fotonews WHERE newid=$nid");
  8.    
  9.         echo '<h2>';
  10.  
  11.         echo "<a href=\"#\" id=\"mostrar".$i."\">";
  12.  
  13.         echo "$row[titol]";
  14.         echo "</a>";
  15.         echo "</h2><br /><p>";
  16.        
  17.         while($row2=mysql_fetch_array($result2))
  18.         {  
  19.             echo "<a href=\"#\" id=\"mostrar".$i."\">";
  20.             echo "<img src=".$row2['ruta']." />";
  21.             echo "</a>";   
  22.         }
  23.  
  24.         echo "$row[resum]";
  25.         echo "</p><br /><br />autor: ";
  26.         echo "$row[autor]";
  27.         echo " | ";
  28.         echo "$row[data]";
  29.         echo " | ";
  30.        
  31.         $tema2=mysql_query("SELECT * FROM tema_news WHERE temaid=$row[tema]");
  32.         while ($row=mysql_fetch_array($tema2))
  33.         {
  34.             echo "$row[apartat]";
  35.         }
  36.            
  37.         echo "<div id=\"caixanew".$i."\">";
  38.        
  39.             $result=mysql_query("SELECT * FROM news WHERE newid='$nid'");
  40.             while($row2=mysql_fetch_array($result))
  41.             {
  42.                 echo "$row2[article]";
  43.                 echo "<a href=\"#\" class=\"close\">Tancar [x]</a>";
  44.             }
  45.        
  46.         echo "</div>";
  47.  
  48.         $i=$i+1;
  49.     }

Grácias!
  #2 (permalink)  
Antiguo 05/08/2010, 14:29
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 15 años, 10 meses
Puntos: 12
Busqueda Respuesta: acceder al mismo div desde diferentes links?

En respuesta a tu pregunta sobre ejecutar una serie de rutinas al clickear (o ejecutar otro evento) en diferentes elementos dentro de una pagina se hace con la funcion trigger que se usa de la siguiente manera

Código PHP:
//Hacemos click en un titulo para que suceda algo

$('#tituloNoticia_1').click(function(){
    $(
'#cuerpoNoticia_1').load('noticias/noticia_1.php?=idNoticia=1');
    return 
false;
});

// Al hacer click en la imagen debe suceder exactamente lo mismo que si hicieramos click sobre el mismo titulo, no repetimos el codigo hacemos lo sigueinte

$('#imagenNoticia_1').click(function(){
    $(
'#tituloNoticia_1').trigger('click');
    return 
false;
}); 
Lo que hicimos fue "disparar" el evento click del titulo al hacer click en la imagen, si es eso a lo que te refieres.

Saludos.
  #3 (permalink)  
Antiguo 05/08/2010, 14:48
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: acceder al mismo div desde diferentes links?

no se si termino de pillarlo...

Eso no cargaria otra pagina?
Esque lo que quiero no es cargar otra pàgina, sino mostrar el div "caixanews" que está dentro de la pàgina y ya lo ha cargado.

Si hace lo que busco, donde lo meto? pq no veo como interactua con el script que tengo.
  #4 (permalink)  
Antiguo 05/08/2010, 15:18
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 15 años, 10 meses
Puntos: 12
Respuesta: acceder al mismo div desde diferentes links?

Quizas algo como esto, supongo que donde tenias mostrar1 era el titulo?

Código Javascript:
Ver original
  1. //Para el titulo
  2.       $(function(){
  3.           $("#titulo_1").click(function(event) {
  4.           event.preventDefault();
  5.           $("#caixanew1").slideToggle();
  6.       });
  7.  
  8. //Para la imagen: se ejecuta el evento del titulo
  9.       $("#foto_1").click(function(event) {
  10.           event.preventDefault();
  11.           $("#titulo_1").trigger('click);
  12.      });
  #5 (permalink)  
Antiguo 05/08/2010, 15:40
FDA
 
Fecha de Ingreso: agosto-2010
Mensajes: 99
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: acceder al mismo div desde diferentes links?

ya funciona!!!!!!

he ido siguiendo tu razonamiento.... pero parece k seguia sin gustarle, así k he hecho una prueba a lo directo, en lugar de un trigger hago otro slideToogle() desde la foto llamando a su caixanew correspondiente.

Código Javascript:
Ver original
  1. $("#foto1").click(function(event) {
  2.     event.preventDefault();
  3.     $("#caixanew1").slideToggle();
  4.     });

Grácias por tu tiempo!!!
  #6 (permalink)  
Antiguo 05/08/2010, 16:18
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 15 años, 10 meses
Puntos: 12
Respuesta: acceder al mismo div desde diferentes links?

Cita:
Iniciado por FDA Ver Mensaje
ya funciona!!!!!!

he ido siguiendo tu razonamiento.... pero parece k seguia sin gustarle, así k he hecho una prueba a lo directo, en lugar de un trigger hago otro slideToogle() desde la foto llamando a su caixanew correspondiente.

Código Javascript:
Ver original
  1. $("#foto1").click(function(event) {
  2.     event.preventDefault();
  3.     $("#caixanew1").slideToggle();
  4.     });

Grácias por tu tiempo!!!

jaja si en esencia era lo mismo hacerlo con el trigger o repetir el codigo, te apunte lo del trigger porque es muy util en situaciones donde se requieren acciones más complejas y con mas lineas de codigo, en este caso una sola linea de codigo no importa mucho.

Me alegro que te haya servido, saludos.
  #7 (permalink)  
Antiguo 06/08/2010, 15:27
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: acceder al mismo div desde diferentes links?

si los 2 clicks en los 2 elementos hacen lo mismo no hace falta repetir código, solo seleccionar los 2 elementos

Código Javascript:
Ver original
  1. $(function(){
  2.           $("#titulo_1, #foto_1").click(function(event) {
  3.           event.preventDefault();
  4.           $("#caixanew1").slideToggle();
  5.       });

ahora me imagino que para mostrar cada una de las noticias estarás repitiendo todo el mismo código, te conviene usar un contenedor para manejarte con los elemetos dentro de el cuando hacen click
algo como:

Código HTML:
Ver original
  1.   <script src="http://code.jquery.com/jquery-latest.js"></script>
  2.   <script>
  3. $(function(){
  4.  
  5.       $(".noticia img, .noticia a").click(function(event) {
  6.           $(this).closest('.noticia').find('p').slideToggle();
  7.           return false;
  8.       });
  9.  
  10. });
  11.   <style>
  12.     p{display:none}
  13.   </style>
  14. </head>
  15.  
  16.     <div class="noticia">
  17.         <img src="http://www.elmostrador.cl/media/2009/12/planeta-tierra-desde-el-espacio_50x50.jpg">
  18.         <a href="#">Título 1</a>
  19.         <p>1 Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
  20.     </div>
  21.  
  22.     <div class="noticia">
  23.         <img src="http://www.elmostrador.cl/media/2009/12/planeta-tierra-desde-el-espacio_50x50.jpg">
  24.         <a href="#">Título 2</a>
  25.         <p>2 Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
  26.     </div>
  27.  
  28.     <div class="noticia">
  29.         <img src="http://www.elmostrador.cl/media/2009/12/planeta-tierra-desde-el-espacio_50x50.jpg">
  30.         <a href="#">Título 3</a>
  31.         <p>3 Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
  32.     </div>
  33.  
  34.     <div class="noticia">
  35.         <img src="http://www.elmostrador.cl/media/2009/12/planeta-tierra-desde-el-espacio_50x50.jpg">
  36.         <a href="#">Título 4</a>
  37.         <p>4 Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
  38.     </div>
  39.  
  40.     <div class="noticia">
  41.         <img src="http://www.elmostrador.cl/media/2009/12/planeta-tierra-desde-el-espacio_50x50.jpg">
  42.         <a href="#">Título 5</a>
  43.         <p>5 Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p>
  44.     </div>
  45.  
  46. </body>
  47. </html>

o sea, cuando hacen click en el link o la imagen subo hasta el contenedor con class noticias y desde ahi busco el párrafo

Última edición por Dany_s; 06/08/2010 a las 15:34

Etiquetas: acceder, diferentes, links
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:20.