Foros del Web » Programando para Internet » Jquery »

[jQuery] Pasar parametros a funcion?

Estas en el tema de [jQuery] Pasar parametros a funcion? en el foro de Jquery en Foros del Web. Hola, actualmente tengo el siguiente script: Código: $(function(){ $('#campo').load('load.php'); $('#campo').hide(); }); $(function(){ $('a#link').toggle(function(){ $('#campo').slideDown('slow'); }, function(){ $('#campo').slideUp('slow'); }); }); Basicamente lo que hace es mostrar ...
  #1 (permalink)  
Antiguo 23/07/2009, 23:11
 
Fecha de Ingreso: marzo-2009
Mensajes: 15
Antigüedad: 15 años, 8 meses
Puntos: 0
[jQuery] Pasar parametros a funcion?

Hola, actualmente tengo el siguiente script:


Código:
$(function(){
	
		$('#campo').load('load.php');
		$('#campo').hide();
	});

$(function(){
		$('a#link').toggle(function(){
			$('#campo').slideDown('slow');
			}, function(){
			$('#campo').slideUp('slow');
		});
	});
Basicamente lo que hace es mostrar el contenido de mi pagina load.php en un div y mostrarlo u ocultarlo al hacer click en un link, el problema es que quiero implementar esta misma funcionalidad a una aplicación mas grande y en esta los 'div' donde quiero mostrar las paginas no tienen ids constantes, sino que por ejemplo se llaman de la siguiente manera:

Código HTML:
<div id="campo<?=arrTable[$i]['id']?>"></div><a id="link<?=arrTable[$i]['id']?></a>"
Donde arrTable es un arreglo que almacena una serie de registros de una base de datos (quedando como id del div campo1, campo2, campo3, etc) igual que para el link.

Actualmente muestro la pagina de la siguiente manera:

Código:
function mostrarLoad(id){
       $('#campo'+id).load('prueba.php');
}
Agregando en la propiedad href del link "Javascript: mostrarLoad(<?=arrTable[$i]['id']?>);"

Pero quisiera saber si me pudieran ayudar a lograr el efecto que les mencione al principio sin necesidad de incorporar la funcion dentro del href..

Saludos!
  #2 (permalink)  
Antiguo 24/07/2009, 07:41
Avatar de eall  
Fecha de Ingreso: noviembre-2008
Ubicación: Concepcion
Mensajes: 127
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: [jQuery] Pasar parametros a funcion?

quizá podrías extraer el id desde el id del link

Código javascript:
Ver original
  1. $(function(){
  2.         $('#campo').load('load.php');
  3.         $('#campo').hide();
  4.     });
  5.  
  6. $(function(){
  7.         $('a#link').toggle(function(){
  8.                         var sId = $(this).attr("id").split("_");
  9.             $('#campo' + sId[1]).slideDown('slow');
  10.             }, function(){
  11.                         var sId = $(this).attr("id").split("_");
  12.             $('#campo' + sId[1]).slideUp('slow');
  13.         });
  14.     });

y en el link le colocas un "_" para separar la palabra link del ID

exito.
__________________
tutoriales xajax, jQuery, PHP y otros en mi blog
  #3 (permalink)  
Antiguo 24/07/2009, 21:51
 
Fecha de Ingreso: marzo-2009
Mensajes: 15
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: [jQuery] Pasar parametros a funcion?

Hola amigo eall,

Modifique el codigo de la siguiente manera

Código:
      $(function(){
	      var sId = $('a.link').attr("id").split("_");
              $('#campo' + sId[1]).load('load.php');
              $('#campo' + sId[1]).hide();
          });

      $(function(){
              $('a.link').toggle(function(){
                              var sId = $(this).attr("id").split("_");
                  $('#campo' + sId[1]).slideDown('slow');
                  }, function(){
                              var sId = $(this).attr("id").split("_");
                  $('#campo' + sId[1]).slideUp('slow');
              });
          });
Lamentablemente solo me muestra el primer registro, porque solo esta cargando en el primer load, si coloco un texto de prueba dentro del div puedo ver que el resto del script funciona perfectamente, hay alguna manera de decir dentro de un ciclo por ejemplo que carge todas las paginas dentro de los div campo1, campo2 etc y las oculte?

Gracias.

EDIT: Ya logre solucionarlo modificando el primer segmento de codigo a lo siguiente y agregando la clase campo al div:

Código:
$(function(){
	      $('.campo').each(function(i){
              $(this).load('load.php');
              $(this).hide();
			  });
          });
Espero les sirva de ayuda a todos!

Última edición por vengiss; 24/07/2009 a las 22:19
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 21:45.