Показать сообщение отдельно
  #1 (permalink)  
Старый 20.02.2012, 13:30
Новичок на форуме
Отправить личное сообщение для nafigator1989 Посмотреть профиль Найти все сообщения от nafigator1989
 
Регистрация: 20.02.2012
Сообщений: 1

Проблемы с конекстом в javascript помогите разобраться
есть вот такой код:



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 для все присоединенных в цикле кнопок , я так понимаю проблема с контекстом, но как её решить ума не приложу. Помогите пожалуйста.
Ответить с цитированием