Autor
|
Tema: [Pregunta]: Detectar un click sobre un elemento (Leído 2,826 veces)
|
Leguim
Desconectado
Mensajes: 720
|
Buenas tardes! Mi problema es el siguiente, necesito detectar cuando se hace un click a un elemento, normalmente uso una ID para esto pero de ante mano no se cual será la cantidad de botones en la que se podrá hacer click, es por eso que usar una ID esta descartado ya que una ID sólo se puede usar en un elemento. digamos que el código es.. var boton = document.getelementbyid('el_boton'); boton.addEventListener('click', boton_click, false); function boton_click() { alert('se hizo un click'); }
mediante clases, ya que como dije mas arriba de entrada no tengo la cantidad de botones.. como podría hacerse algo parecido/similar? Gracias desde ya!
|
|
|
En línea
|
|
|
|
iCoke
Desconectado
Mensajes: 16
|
const detectarClick = (classBoton) => { let boton = Array.prototype.slice.apply(document.querySelectorAll(classBoton));
boton.forEach(element => { element.addEventListener('click',()=>{ alert('se hizo un click'); }) });
} detectarClick(".btnEditarPack")
Saludos amiguito!
|
|
|
En línea
|
|
|
|
EdePC
|
Saludos, - Puedes adjuntar el Evento al Contenedor de los Botones, luego examinas el evento y sacas el Target, el cual es el Elemento dentro del contenedor que ha recibido el Evento ( btn.target): https://jsbin.com/rijihogepi/edit?html,output<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <div id="botones"> <button>Botón 1</button> <button>Botón 2</button> <button>Botón 3</button> <button>Botón 4</button> <button>Botón 5</button> </div> <div id="log"></div> <script> document.getElementById("botones").addEventListener("click", function(btn){ document.getElementById("log").innerHTML = btn.target.innerHTML; }, false); </script> </body> </html>
|
|
|
En línea
|
|
|
|
Leguim
Desconectado
Mensajes: 720
|
const detectarClick = (classBoton) => { let boton = Array.prototype.slice.apply(document.querySelectorAll(classBoton));
boton.forEach(element => { element.addEventListener('click',()=>{ alert('se hizo un click'); }) });
} detectarClick(".btnEditarPack")
Saludos amiguito! ¡Muchas gracias a los dos por responder! El código funciona pero necesito saber la posición o la cantidad del elemento al que se hizo click.. digamos hay 3 divs.. en cada div esta ese boton (con la misma clase) al dar click deberia mandar un mensaje "se hizo click en el boton X" X sería el numero de la clase, osea si es el elemento 1 con esa clase, el 2, el 3, o el 4 dependiendo cuantos tenga con esa clase.. no se si me explico.. gracias!! ACTUALIZACIÓN: Hice esto pero lo que hace es imprimirme la posición el ultimo elemento no del cual hice click. var boton_options = document.querySelectorAll('.boton_options_anuncio'); var cant_boton_options = document.querySelectorAll('.boton_options_anuncio').length; for(var i = 0; i < cant_boton_options; i++) { var boton = boton_options[i]; boton.addEventListener('click', function(){si(i)}, false); } function si(i) { console.log(i); }
|
|
« Última modificación: 30 Enero 2019, 23:10 pm por MiguelCanellas »
|
En línea
|
|
|
|
iCoke
Desconectado
Mensajes: 16
|
no se si entendi bien, proba esto.. const detectarClick = (classBoton) => { let boton = Array.prototype.slice.apply(document.querySelectorAll(classBoton)); boton.forEach(element => { element.addEventListener('click',()=>{ let msj = element.textContent alert(`hiciste click en: ${msj}`); }) }); } detectarClick(".btn")
[/tt]
si no es esto lo que buscas avisame, y pruebo de nuevo ajja saludos!
|
|
|
En línea
|
|
|
|
Leguim
Desconectado
Mensajes: 720
|
no se si entendi bien, proba esto.. const detectarClick = (classBoton) => { let boton = Array.prototype.slice.apply(document.querySelectorAll(classBoton)); boton.forEach(element => { element.addEventListener('click',()=>{ let msj = element.textContent alert(`hiciste click en: ${msj}`); }) }); } detectarClick(".btn")
[/tt]
si no es esto lo que buscas avisame, y pruebo de nuevo ajja saludos! Probé tu código pero me salen muchos cuadraditos en lugar del valor algo así.. "hiciste click en: [][][][][][][][][][]"
|
|
|
En línea
|
|
|
|
EdePC
|
- Por otro lado, yo estoy entiendo de que quieres usar un bucle for para indexar cada botón que tenga una clase específica. Dicho índice es el número de botón procesado el el bucle para agregarle el evento click, y que dicho evento debe mostrar ese índice. https://jsbin.com/layunogihu/edit?html,output <div id="botones"> <button class="btn">boton 1</button> <button class="btn">boton 2</button> <button class="btn">boton 3</button> <button class="btn">boton 4</button> </div> <div id="log"></div> <script> let botones = document.querySelectorAll('.btn'); let index = 1; for (let boton of botones) { let mensaje = `Click en el botón: ${index}`; boton.addEventListener('click', () => alert(mensaje)); index++; } </script>
|
|
« Última modificación: 31 Enero 2019, 05:30 am por EdePC »
|
En línea
|
|
|
|
Leguim
Desconectado
Mensajes: 720
|
- Por otro lado, yo estoy entiendo de que quieres usar un bucle for para indexar cada botón que tenga una clase específica. Dicho índice es el número de botón procesado el el bucle para agregarle el evento click, y que dicho evento debe mostrar ese índice. https://jsbin.com/layunogihu/edit?html,output <div id="botones"> <button class="btn">boton 1</button> <button class="btn">boton 2</button> <button class="btn">boton 3</button> <button class="btn">boton 4</button> </div> <div id="log"></div> <script> let botones = document.querySelectorAll('.btn'); let index = 1; for (let boton of botones) { boton.addEventListener('click', () => alert('Click en el boton: ' + index++)); } </script>
WOAO! Me salvaste la vida Ede GRACIAS! igualmente, MUCHAS GRACIAS ICOKE!!!!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Pregunta Sobre el Manejo del Evento Click
.NET (C#, VB.NET, ASP)
|
7U15MK
|
5
|
4,834
|
4 Mayo 2007, 19:54 pm
por MaLkAvIaN_NeT
|
|
|
[Solucionado] Detectar posicion del click en imagen?
« 1 2 »
Programación Visual Basic
|
Cromatico
|
14
|
6,762
|
8 Diciembre 2010, 00:35 am
por Psyke1
|
|
|
detectar item de lista con doble click y obtener id de elemento
Programación C/C++
|
dewolo
|
7
|
4,899
|
4 Octubre 2011, 22:57 pm
por Eternal Idol
|
|
|
Detectar elemento y rellenar en página web html?
Programación Visual Basic
|
usuario oculto
|
0
|
2,669
|
8 Octubre 2011, 12:36 pm
por usuario oculto
|
|
|
Detectar click en un Iframe
« 1 2 »
Desarrollo Web
|
mapers
|
11
|
5,958
|
22 Mayo 2014, 16:23 pm
por mapers
|
|