Задача
Массив определяет эти элементы:
var equipment = new Array( "bakeware", "cookware", "kitchenware", "utensils" );
Существует функция, которая связывает эти типы оборудования с редактируемыми полями:
function register_equipment( equipment ) {
$('#recipe-equipment-' + equipment).append(
'<span class="edit-recipe-equipment"></span><br />' );
$('.edit-recipe-equipment').editable( 'php/save.php', {
onblur : 'submit',
style : 'display: inline',
maxlength: 15,
size : 10
});
return true;
}
Это позволяет пользователям нажимать на поле и редактировать его значение. Поле ввода исчезает, когда пользователь заканчивает редактирование.
Следующий код дублируется четыре раза (один раз для каждого предмета снаряжения):
$('#equipment-new-bakeware').click( function() {
return register_equipment( 'bakeware' );
});
Это работает, но не идеально.
Вопрос
Как бы вы написали код, чтобы не было дублирования?
Следующее не работает, но показывает намерение удалить дублирование:
for( var i = 0; i < equipment.length; i++ ) {
$('#equipment-new-' + equipment[i]).click( function() {
return register_equipment( equipment[i] );
});
}
Спасибо!