Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблемы с конекстом в javascript помогите разобраться (https://javascript.ru/forum/misc/25923-problemy-s-konekstom-v-javascript-pomogite-razobratsya.html)

nafigator1989 20.02.2012 13:30

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

Mахmахmахimus 20.02.2012 14:44

На самом деле я скажу секрет, тут ни кто не любит читать много кода, тем более связанного с вертской. верстка - для домохозяек, это не требует мозгов и рутиный рабский труд.

Если не будут отвечать значит причина в этом.

А лично мне лень читать слишком много непонятного мне кода...

Я например не знаю что такое dialog_prop
и если ты думаешь что тут сидят суперанограммисты ты прав, но если думаешь что тут сидят суперпрограммисты которые могут считывать код тоннами разбираясь в нем, то ты не прав.

вот я те клянусь, ты ни где в коде не создавал свойство

dialog_prop чтобы в него что-то там засовывать.

Kolyaj 20.02.2012 14:50

Цитата:

Сообщение от Mахmахmахimus
верстка - для домохозяек, это не требует мозгов и рутиный рабский труд.

Нуну.


nafigator1989,
сохраняйте this в локальную переменную.

Mахmахmахimus 20.02.2012 14:52

Цитата:

Сообщение от Kolyaj
Нуну

что разве нет?
Верстать сайтики менюшки это не каждый может, шаблоны на джумлу подгонять я еще в 15 лет этим занимался. Группы вконтакте оформлять. Это так сложно это элита фриланс отросли.

(из моих слов НЕ следует: "все кто верстают домохозяйки и рабы")

Ладно не будем вар разводить, я просто высказал мнение.

Kolyaj 20.02.2012 14:54

Цитата:

Сообщение от Mахmахmахimus
(из моих слов НЕ следует: "все кто верстают домохозяйки и рабы")

Из твоих слов следует, что для занятия вёрсткой не нужны мозги. То то толковых верстальщиков днём с огнём не сыщешь.

Mахmахmахimus 20.02.2012 14:56

Цитата:

Сообщение от Kolyaj
Из твоих слов следует, что для занятия вёрсткой не нужны мозги.

именно, да я это и хотел сказать, что это не требует мозгов и скучно по этому многие могут не отвечать в таких темах.

п.с. вот я клянусь я релаьно не понял что происходит в коде. код вообще ошибку выдаст!

что вот это такое вообще?
addButtons:function( 18 строчка. что это? я мож что-то упустил новый синтаксис деалкрирования функций?
Стойте стойте, так это ж разные скрипты! между 15 и 18 стройкой огромное расстояние! все тпеерь понятно он просто новичок и не догадался нормально оформить. ясно.


Часовой пояс GMT +3, время: 03:52.