Me preguntaba cuál de los métodos anteriores es el preferido o es la pauta general que usa $ (elem) .click() para cosas simples y < a onclick = "func (1, 2, 3, 4);" > cuando necesita pasar parámetros a la secuencia de comandos cuando se hace clic en el elemento? He intentado usar solo $ (elem) .click() para mantener el código limpio y simple, pero cuando tienes que pasar más de un parámetro se vuelve complicado y llamar a la función onclick = "" parece una solución mejor .onclick = "func()" o .click()?
Respuesta
$(elem).click(function() {
func(1,2,3,4);
});
Parece lo que quieres, ¿no?
Prefiero usar $ (elem) .click() para mantener mi HTML libre de javascript, lo considero más limpio.
Una de las principales ideas detrás de jQuery es la javascript discreta (es decir, HTML y javascript son dos grandes sabores que no saben muy bien juntos). Usar el objeto jQuery y los selectores para adjuntar las funciones es lo que preferirían que hicieras.
Si los parámetros se pudo determinar en el momento del clic, sugeriría el método de unión:
$('a').click(function(){ someFunc(this.val, 2, 3, 4); })
Uno de los casos lo que podía pensar de hacerlo en línea, es que si usted está construyendo múltiples enlaces en un bucle donde params 1, 2, 3 o 4 están variando de acuerdo a una variable backend o algo:
<% for(int i = 0; i < 4; i++) { %>
<a onclick="someFunc(1,<%= i %>,3,4"></a>
<% } %>
en lo personal, siempre trato de unirse al evento en un $ (document) ready() llamar de vuelta.
Esperanza esto ayuda
Puede pasar parámetros a una función cuando se utiliza jQuery:
$(".selector").click(function() { func(1,"2", someVar); });
Yo prefiero usar siempre jQuery para el manejo de mi caso. No me gusta poner ningún comportamiento en mi HTML, incluso con onclick
y eventos relacionados.
Además, si programáticamente hace clic en algo usando $(".selector").click()
y tiene un controlador conectado usando tanto onclick
como jQuery, primero llamará al manejador jQuery y luego al manejador se establecerá utilizando el atributo. Pero si haces clic con el mouse, es al revés. Eso podría ser inesperado, y terminará dándote dolores de cabeza en el futuro.
me gustaría ir con la click()
así, si tiene parámetros adicionales que quiera pasar a la función, añadirlos a cualquiera de los atributos del objeto, que suelen utilizar rel
así:
<a href="#" class="link" rel="parameter1, parameter2, etc">Link</a>
en la secuencia de comandos se puede hacer esto:
$('.link').click(function() {
var parameters = $(this).attr('rel').split(',');
// Do something
return false;
})
- 1. onclick = "javascript: func()" frente a onclick = "func()"
- 2. onclick o onClick?
- 3. ¿es una mala práctica usar href = 'javascript: func()' que onclick = 'func()' para anclas?
- 4. jquery unbind click
- 5. ¿Por qué necesitamos ng-click?
- 6. Jquery onclick en div
- 7. ¿Hay un método jQuery Click?
- 8. ASP.NET + ModalPopupExtender + Click Evento
- 9. Diferencia entre `.click (controlador())` y `.click (controlador)`
- 10. orden de los eventos onclick
- 11. Javascript onclick ocultar div
- 12. jQuery onClick evento
- 13. OnClick sin jQuery
- 14. ¿Qué usar? delegar, evento o Func <T>?
- 15. Func <TObject, bool> o Predicate <TObject>?
- 16. ¿Puedo usar params en Action o Func delegados?
- 17. jquery .click llamado varias veces
- 18. jquery diálogo modal onclick?
- 19. Crear expresión desde Func
- 20. JQuery onclick condition stop link?
- 21. ¿Cuál es la diferencia entre usar jQuery's onclick y el atributo onclick?
- 22. Desencadenar javascript en el atributo href con jQuery .click() (o similar)
- 23. En jQuery, ¿es $ (func) equivalente a $ (documento) .ready (func)?
- 24. JQuery Click versus Change
- 25. Func Delegate vs Función
- 26. preventDefault dentro atributo onclick de una etiqueta
- 27. Android/Phonegap - onClick() no funciona
- 28. obtener el valor de "onclick" con jQuery?
- 29. href jQuery y separación onclick
- 30. equivalente de javascript puro de jquery click()?
Pero si los parámetros pasados a la función son únicos para cada elemento y que pueden tener cientos de estos elementos, se vuelve más complicado que hacerlo de esta manera, así que por eso me preguntaba si en esos casos deberías e el método onclick = "func (1, 2, 3, 4)" o debería quedarse con $ (elem) .click(). Por supuesto, podría poner todos esos parámetros en la cadena de consulta url como foo = 1 & bar = 2 y poner eso en href = "" y en $ (elem) .click() usar $ (this) .href() para obtener los valores , pero ¿es más eficiente hacer onclick = "func()"? – TheMagician
bien, entonces debería usar los atributos de datos html5 para establecer valores únicos asociados con cada elemento relevante: 'link' – geowa4
Si tiene cientos de estos elementos, la forma más eficiente es usar [event delegation] [http: //www.danwebb. net/2008/2/8/event-delegation-made-easy-in-jquery] en lugar de manejadores onclick individuales para cada elemento. Para mantener el JS menos mezclado con su HTML, puede almacenar los parámetros necesarios en una estructura de datos de Javascript, con claves para cada objeto que sea el elemento ID o similar. –