jQuery llama a la misma función cuando se hace clic en dos botones diferentes
Frecuentes
Visto 6,765 veces
2
I have a button with class try
and when its clicked there is a function that is being called, now I want to create a button called start
that will do the same, and I don't want to copy paste whole code in that button click handler, is there a way to say lets say if try
or start
do the following in jquery?
4 Respuestas
9
I assume that since you said a button called start
que start
is the id. That is why I am using a #
en lugar de un .
para hacer referencia a él.
$('.try, #start').click(function(e){
YourFunction();
});
if start
is the class, then use this. #
indicates an id, while .
indicates a class.
$('.try, .start').click(function(e){
YourFunction();
});
contestado el 02 de mayo de 12 a las 19:05
2
Move the handler code to a named function and bind the named function.
function someFunction() {
}
$('.try').on('click', someFunction);
$('.start').on('click', someFunction);
O en una línea
$('.try, .start').on('click', someFunction);
contestado el 02 de mayo de 12 a las 19:05
2
$('.start, .try').click(function(){
//do your thing here
});
assumes two buttons with different classes:
<button class='try'>try</button>
<button class='start'>start</button>
MUCH easier if you use one class:
<button class='trystart'>try</button>
<button class='trystart'>start</button>
$('.trystart').click(function(){
//do your thing here
});
contestado el 02 de mayo de 12 a las 19:05
1
solo haz:
$('#start, .try').on('click', function(){ // both of them
myFunction();
});
o bien:
$('#start').on('click', function(){
$('.try').click(); // trigger .try action
});
Or just call your function inside the click:
function myClickFunction(){
// your code ...
}
$('#start').on('click',function(){
myClickFunction();
});
contestado el 02 de mayo de 12 a las 19:05
it is not a function, it is code executed when a button is clicked that I can't put in a function - Grigor
than use my second example! $('#start').on('click', function(){ $('.try').click(); // trigger .try action });
This will trigger the code inside the .fun
element, just like you you actually clicked the .try
! fun. - Roko C. Bulján
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas jquery function or haz tu propia pregunta.
2 individual calls instead of using the
$('.try, #start')
selector? Any reason for that? - holandés432too much writing, @Dutchie432 had the simplest answer - Grigor
@Dutchie432 Even though, I updated my post to have it in one line. I personally prefer having it in 2 lines as it looks more clear. - Selvakumar Arumugam
@Grigor Its more of a preference than writing. Again, it may be just me. Btw, For your case La respuesta de Mark is my recommendation. - Selvakumar Arumugam
@Vega if you can write less and do more, I don't think there is a reason not to, the other method is cleaner too. - Grigor