Reputation: 12047
I currently have four change()
events that fire exactly the same code (see below), so I'm wondering if there is a way of grouping these events in one line to save reapeating code four times?
Thanks.
/** Check for a change to any of the search dropdowns */
$('#job-roles').change(function(e){
letter = $_GET('staff_search');
initiate_staff_search(letter, '<?php echo $staff_search_nonce; ?>', '<?php echo $name_search_type; ?>')
});
$('#ind-services').change(function(e){
letter = $_GET('staff_search');
initiate_staff_search(letter, '<?php echo $staff_search_nonce; ?>', '<?php echo $name_search_type; ?>')
});
$('#bus-services').change(function(e){
letter = $_GET('staff_search');
initiate_staff_search(letter, '<?php echo $staff_search_nonce; ?>', '<?php echo $name_search_type; ?>')
});
$('#indi-services').change(function(e){
letter = $_GET('staff_search');
initiate_staff_search(letter, '<?php echo $staff_search_nonce; ?>', '<?php echo $name_search_type; ?>')
});
Upvotes: 4
Views: 401
Reputation: 6814
Another option, in addition to the excellent ones already described, is simply:
(function(){
function doCoolStuff(){
letter = $_GET('staff_search');
initiate_staff_search(letter, '<?php echo $staff_search_nonce; ?>', '<?php echo $name_search_type; ?>')
}
$('#job-roles').change(function(e){
doCoolStuff();
});
$('#ind-services').change(function(e){
doCoolStuff();
});
$('#bus-services').change(function(e){
doCoolStuff();
});
$('#indi-services').change(function(e){
doCoolStuff();
});
}());
Upvotes: 1
Reputation: 38147
Use a class ?
Give all the elements a class of say doSomething
then use the following code to implement the listener:
$('.doSomething').change(function(e){
letter = $_GET('staff_search');
initiate_staff_search(letter, '<?php echo $staff_search_nonce; ?>', '<?php echo $name_search_type; ?>')
});
Upvotes: 4
Reputation: 7076
$('#job-roles, #indi-services, #ind-services, #bus-services').change(function(e){
letter = $_GET('staff_search');
initiate_staff_search(letter, '<?php echo $staff_search_nonce; ?>', '<?php echo $name_search_type; ?>')
});
Upvotes: 5
Reputation: 146310
Option 1: give them all the same class and attach the event to all of them $('.someClass').change(...)
Option 2: Group the event: $('#job-roles, #ind-services, ... ').change(...)
Upvotes: 5