есть вот такой код:
buttons = [
{
name:"Редактирвать",
function_do:this.changeUpdateMarker,
validate: true,
closeOnSuccess:true
},
{
name:"Удалить",
function_do:this.removeDeleteMarker,
validate:false,
closeOnSuccess:true
}
]
addButtons:function(buttons){
this.dialog_prop.buttons = {};
var $el = this.$el,
itter,
button;
for(itter=0; itter < buttons.length; itter++ ){
if(typeof(buttons[itter].function_do) == "function"){
button = buttons[itter];
this.dialog_prop.buttons[buttons[itter].name] = function(){
if($el.find('form').validationEngine('validate') == true ){
button.function_do();
$el.find('form').validationEngine('hide');
$(this).dialog("close");
$(this).dialog("destroy");
}
}
}
}
this.dialog_prop.buttons["Отмена"]= function(){
$(this).dialog("close");
$(this).dialog("destroy");
}
}
код добавляет кнопки в цикле для jquery ui dialog widget из массива объектов buttons. В функции кнопки выполняется функция function_do из массива объектов buttons + выполняются доп. действия типа валидации форм и закрытии диалога. Проблема в том что когда в я пытаюсь присоединение 2 кнопки и более то строка button.function_do(); всегда выполняет функцию из последнего объекта массива buttons для все присоединенных в цикле кнопок , я так понимаю проблема с контекстом, но как её решить ума не приложу. Помогите пожалуйста.