Foros del Web » Programando para Internet » Jquery »

Pasar parámetros a una función

Estas en el tema de Pasar parámetros a una función en el foro de Jquery en Foros del Web. Lo que estoy tratando de hacer es pasarle una "id" a una función jquery desde el onclick de un enlace. El código base que funciona ...
  #1 (permalink)  
Antiguo 08/03/2017, 05:17
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 8
Pasar parámetros a una función

Lo que estoy tratando de hacer es pasarle una "id" a una función jquery desde el onclick de un enlace.

El código base que funciona y que estoy tratando de modificar es el siguiente:

Código HTML:
<a id="target_anchor1" href="#" title="XXXXXXXXXX">test 1</a>


<script type="text/javascript">
 $(function () {
     $('#target_anchor1').flyout({
    title: '', 
    content: function() {
        return document.getElementById('target_anchor1').title;
    },
    html: true,
    dismissible: true
     });
});
</script> 
¿Pero que pasa si tengo 100 enlaces? Tendría que generar 100 llamadas para cada uno de ellos y esa no es la idea... Así entonces, generé una función que recibiera la id del elemento y generara automáticamente el flyout, pero si bien recibe el parámetro, no me lo crea.

Código HTML:
<a id="target_anchor1" href="#" title="XXXXXXXXXX" onclick="anchorFlyout(this.id)">test 1</a>
<a id="target_anchor2" href="#" title="YYYYYYYYYY" onclick="anchorFlyout(this.id)">test 2</a>
<a id="target_anchor3" href="#" title="ZZZZZZZZZZ" onclick="anchorFlyout(this.id)">test 3</a>

<script type="text/javascript">
function anchorFlyout(paramId) {
alert(paramId);
$('#'+paramId).flyout({
    title: '',
    content: function() {
       return document.getElementById('#'+paramId).title;
    },
    html: true,
    dismissible: true
});
}
</script> 
Tomé como base este script y librerias Flyout

Alguna idea?
__________________
18 laaaaargos años en FDW... y soy de los pocos que ví correr sangre! :X
  #2 (permalink)  
Antiguo 08/03/2017, 11:22
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: Pasar parámetros a una función

El método document.getElementById() no trabaja con el # para seleccionar elementos por su identificador. Eso funciona con el método document.querySelector(); aunque es poco coherente que estés utilizando la librería jQuery y decidas seleccionar elementos con código JavaScript nativo cuando tranquilamente puedes hacerlo así: $("#elId"). Incluso debería funcionar de la forma $(this) ya que está dentro del contexto; pero no sé cómo funciona el widget .flyout(), de manera que solo te queda probar con ambas para ver cuál funciona.

__________________
«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 08/03/2017, 11:47
(Desactivado)
 
Fecha de Ingreso: septiembre-2008
Mensajes: 269
Antigüedad: 15 años, 7 meses
Puntos: 22
Respuesta: Pasar parámetros a una función

Buenas tardes.

A mi me funcionó de esta manera.

Código HTML:
Ver original
  1. <a id="target_anchor1" class="anchor" href="#" title="XXXXXXXXXX" >test 1</a>
  2. <a id="target_anchor2" class="anchor" href="#" title="YYYYYYYYYY" >test 2</a>
  3. <a id="target_anchor3" class="anchor" href="#" title="ZZZZZZZZZZ" >test 3</a>

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. $(function() {
  3. $( ".anchor" ).click(function() {
  4.     $(this).flyout({
  5.         title: '',
  6.         content: $(this).attr("title"),
  7.         html: true,
  8.         dismissible: true
  9.     });  
  10.  
  11. });
  12. });
  13. </script>
  #4 (permalink)  
Antiguo 08/03/2017, 12:44
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 8
Respuesta: Pasar parámetros a una función

gracias muchachos por sus respuestas.

Alexis88, intentaré con alguna de las maneras que me indicas.

jeremiselxi, probé tu código, pero me pasan dos cosas:

1. Extrañamente el flyout funciona la primera vez sólo al hacer doble click en el enlace, luego de eso, funciona con un click simple.
2. El flyout solo desaparece si le haces click a otro enlace, y no al enlace que lo generó, o bien, no desaparece, no se si me explico.
__________________
18 laaaaargos años en FDW... y soy de los pocos que ví correr sangre! :X

Última edición por pcarvajal; 08/03/2017 a las 12:53
  #5 (permalink)  
Antiguo 09/03/2017, 09:32
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 3 meses
Puntos: 8
Respuesta: Pasar parámetros a una función

alguien podría hecharme una manito por favor?
__________________
18 laaaaargos años en FDW... y soy de los pocos que ví correr sangre! :X
  #6 (permalink)  
Antiguo 24/03/2017, 20:31
(Desactivado)
 
Fecha de Ingreso: septiembre-2008
Mensajes: 269
Antigüedad: 15 años, 7 meses
Puntos: 22
Respuesta: Pasar parámetros a una función

Cita:
Iniciado por pcarvajal Ver Mensaje
alguien podría hecharme una manito por favor?
Voy a verificar y te comento

Etiquetas: funcion, javascript, parametros, wtf
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:13.