As the title reads, I’d like to pass show() & hide() jQuery functions as parameters in another function.
function applyActionOnClass(attr, action) {
$('#salesonhold_table tr').each(function () {
if ($(this).attr('status') == attr)
$(this).action;
});
}
Here is when I call my applyActionOnClass function:
$(document).on('change', '.checkboxes', function () {
var attr = $(this).val();
if ($(this).is(':checked'))
applyActionOnClass(attr, show());
else
applyActionOnClass(attr, hide());
});
To explain a bit the purpose of this, I have a table and each of its <tr> has a status attribute which differs them from each other. I have two checkboxes on top of the table, one for each possible status value and I’d like to hide/show corresponding <tr> when checkboxes are triggered.
The trigger and stuff work fine but when it comes to $(this).action; it says hide is not defined. Any idea what I did wrong there?
Thank you so much !
You can pass an anonymous function (or delegate) instead. This code handles that:
This code passes the delegate in: