Вам необходимо абстрагировать данные от функциональности.
sendClick('#Button1', function() {
$j('#Response').show();
});
sendClick('#Button21', function() {
// do something
});
функция sendClick
function sendClick(selector, callback)
{
$j(selector).click( function () {
var data = $j("form").serialize();
$j.post('file.php', data, callback);
});
}
Таким образом, вы можете повторять одну и ту же функцию снова и снова, изменяя селектор и обратный вызов. Вы можете настроить это еще дальше:
function sendClick(selector, options, callback)
{
// handle arguments
if(typeof options == 'function') {
callback = options;
options = {};
} else {
options = options || {};
}
$j.extend({
form: 'form',
file: 'file.php'
}, options);
// abstracted logic
$j(selector).click(function() {
var data = $j(options.form).serialize();
$j.post(options.file, data, callback);
});
}
затем используйте как
sendClick('#select', {form: '#anotherForm'}, function() {
// do something
});
или
sendClick('#another', function(response) {
// something else
});