je le code suivant:Jquery Bind Event
$('#form_field, #button').bind('change click', function() {
// take action
});
Il fonctionne très bien. Cependant, je veux déclencher la même action quand 'change' est utilisé pour '#form_field' et 'click' pour '#button' (pas quand 'click' est utilisé pour '#form_field').
Je sais qui peut être fait en utilisant le code suivant:
$('#form_field').bind('change', function() {
// take action
});
$('#button').bind('click', function() {
// take action
});
Cependant, je ne veux pas répéter tout le code qui se trouve dans la fonction (// action de prendre). Cela semblerait inefficace et je devrai l'éditer deux fois chaque fois que j'y apporterai des modifications.
Des idées?
Merci à l'avance
Pourquoi ne pas u (et Nick Spiers dans sa réponse) ne pas utiliser '$ ('bouton #') cliquez sur (myCoolFunction)' au lieu de ' $ ('# button'). bind ('click', myCoolFunction) '? Idem avec '$ ('# button'). Bind ('change', myCoolFunction)' et '$ ('# button'). Change (myCoolFunction)'. Comme je suis nouveau à JQuery: Y a-t-il une raison spécifique? ~ Chris – cimnine
Pas vraiment, il sauve un énorme appel de fonction 1 .. à l'intérieur de jQuery '$ .fn.click = function (fn) {return fn? this.bind ('click', fn): this.trigger ('clic'); }; '(bien qu'il ne soit pas directement défini de cette façon, regardez @ ligne 3098 dans jQuery-1.3.2.js) – gnarf