example - Enlace de una función de JavaScript existente en jQuery
jquery datepicker events (3)
Al tomar prestado de las otras publicaciones, puede parametrizar su controlador de eventos de la siguiente manera:
function fHardCodedFunction(someValue) {
alert(this.id + " - " + someValue);
}
function fBindFunctionToElement() {
var someValue = "whatever";
$("#MyButton").bind("click",
function() {
fHardCodedFunction.apply(this, [someValue]);
}
);
}
$(document).ready
(
function() {
fBindFunctionToElement();
}
);
Estoy usando aplicar aquí porque en la función fHardCodedFunction
me gustaría que this
propiedad se refiera al elemento MyButton
. Tenga en cuenta también que apply espera una matriz para el segundo parámetro, razón por la cual he ajustado algunos someValue
entre paréntesis
No tiene que hacerlo de esta manera y puede olvidarse de this
propiedad si lo prefiere.
Usando jQuery quiero enlazar una función existente a un botón. He revisado la documentación y he encontrado el método de enlace, pero los ejemplos en jQuery enlazan funciones recién creadas donde, como quiero vincular una función que ya está codificada, por ejemplo:
function fHardCodedFunction(){
//Do stuff
}
function fBindFunctionToElement(){
$("#MyButton").bind("click", fHardCodedFunction());
}
es posible? ¿O voy por esto de la manera incorrecta?
El plano fHardCodedFunction
ya se refiere a la función y el sufijo ()
simplemente lo llamará. Así que simplemente pase la función en lugar de llamarla y, por lo tanto, simplemente pase el valor de retorno:
function fBindFunctionToElement(){
$("#MyButton").bind("click", fHardCodedFunction);
}
Sí, puedes vincular métodos que están escritos en otro lugar, pero debes ignorar los paréntesis:
function fHardCodedFunction(){
//Do stuff
}
function fBindFunctionToElement(){
$("#MyButton").bind("click", fHardCodedFunction);
}