Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
30 / 26 / 8
Регистрация: 17.09.2015
Сообщений: 498
Записей в блоге: 6
1

Добавить событие в объект

03.11.2018, 21:20. Показов 763. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте уважаемые коллеги, жители и гости форума!

Помогите допетрить, как добавить событие в свой объект

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ProductController = {
    /**
     * Список товаров
     */
    list: function (page_index = 1) {
        let formData = new FormData();
 
        formData.append('page_index', page_index);
 
        $.ajax({
            url: '/admin/catalog/product/get/',
            type: 'POST',
            data: formData,
            dataType: 'json',
            cache: false,
            processData: false,
            contentType: false,
            beforeSend: function () {
            },
            success: function (response) {
                // генерация события
            }
        });
    },
 
   // Здесь какое-то свойство, callback функция или еще что то.
}


В чём смысл.

Имея объект ProductController

Javascript
1
2
3
4
5
ProductController.onComplete(function (response){
      console.log(response)
})
 
ProductController.list(1);
Задача тривиальная и всё же.
Хотелось бы иметь правильный подход.

Добавлено через 2 часа 57 минут
Нашел правильное решение


Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
var MyObj = function(h,w){
   this.height = h;
   this.width  = w;
   this.handlers = {};
   this.events = ['close', 'beforeclose'];
 
   this.beforeClose = function(){
       for(var i = 0, l = this.handlers.beforeclose.length; i < l; i++){
           this.handlers.beforeclose[i].call(this);
       }
   }
 
   this.afterClose = function(){
       for(var i = 0, l = this.handlers.close.length; i < l; i++){ 
           this.handlers.close[i].call(this);
       }
   }
 
   this.close = function(){ this.beforeClose(); /**Do close */ this.afterClose(); }
   this.registerHandler = function(type, func){ 
       if(this.events.indexOf(type) == -1) throw "Invalid Event!";
       if(this.handlers[type]){ 
           this.handlers[type].push(func); 
       } else { 
           this.handlers[type] = [func]; 
       } 
   }
 
 
 
}
 
 
 
var myo = new MyObj();
myo.registerHandler('beforeclose', function(){alert("I'm closing!");});
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2018, 21:20
Ответы с готовыми решениями:

Ссылка на объект, вызвавший событие
Всем доброго времени суток! Недавно начал изучать JavaScript и пишу свой первый калькулятор....

Как добавить событие на программно созданный объект
Есть такой код: For i=1 to 10 Set labelx = Me.Controls.Add('VB.Label', 'label' &amp; i, Me) next...

Добавить в уже существующий объект свойство и положить в него объект
У меня имеется такая вложенность в редьюсере initialState = { prop1: { props2: {...

Автоматически добавить объект в объект
Приветствую тебя читатель. Попытаюсь объяснить чего я хочу, если не понятно уточняйте. Вообщем...

0
03.11.2018, 21:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2018, 21:20
Помогаю со студенческими работами здесь

Событие на еще несозданный объект
Как прописать событие на объект, который будет создан в процессе выполнения программы? Public...

Событие MouseEnter и объект Graphics
Подскажите начинающему, как мне увязать событие MouseEnter с объектом Graphics, пример: на главную...

Событие внесения мыши на объект
Какое событие внесения и вынесения мыши на объект?

Подписать на событие динамически созданный объект
Друзья, подскажите пожалуйста, что делаю неправильно. Есть программка, создает массивы label и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru