Estoy tratando de ejecutar una función externa al hacer clic en un elemento DOM sin envolverlo en otra función.¿Cómo puedo ejecutar una función externa cuando se hace clic en un elemento?
Digamos que tiene una función llamada sayHello()
, de la siguiente manera:
function sayHello(){
alert("hello");
};
para ejecutarlo en el clic, actualmente tengo que hacer esto:
$("#myelement").click(function(){
sayHello();
});
Aviso Me veo obligado a envolver el único llamada de función en otra función más. Lo que estoy tratando de hacer es algo como esto
$("#myelement").click(sayHello());
Excepto que simplemente no funciona. ¿Puedo evitar envolver la llamada de función única en otra función de alguna manera? Gracias!
.
Información adicional: ¿Cómo puedo lograr lo mismo cuando necesito pasar parámetros a la función?
..
Información adicional: Al igual que Chris Brandsma y Jani Hartikainen señalaron, uno debe ser capaz de utilizar la función se unen para pasar parámetros a la función sin envolverlo en otra función anónima como tal:
$("#myelement").bind("click", "john", sayHello);
con sayHello()
ahora aceptar un nuevo parámetro, como tal:
function sayHello(name){
alert("Hello, "+name);
}
Esto, lamentablemente, no parece funcionar ... ¿Alguna idea? La documentación de Eventos/enlace se encuentra here ¡Gracias!
¿Cuál es su carne con funciones de envolver? No es un golpe de rendimiento (bueno, nanosegundos tal vez). Es un poco detallado, pero me parece útil hacer esto y mantener todo consistente. En el momento en que necesites agregar un parámetro o llamar a más de una función, necesitarás agregar el contenedor nuevamente en ... – DisgruntledGoat
, supongo que solo quiero tenerlo en una línea y soy OCD así ... :) –