Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   пользовательские cобытия и функции jquery попытка 2 (https://javascript.ru/forum/jquery/39648-polzovatelskie-cobytiya-i-funkcii-jquery-popytka-2-a.html)

hurt3 07.07.2013 13:11

пользовательские cобытия и функции jquery попытка 2
 
Предположим у нас есть два объекта.
Объект 1 и объект 2
Объект 1 должен знать, что в объекте 2 происходит выполнение функции t_add().
Когда же в объекте 2 происходит выполнение функции add(), в объекте 1 должна выполняться функция t_crash()
Как будет наиболее правильно устроить данное взаимодействие?
Можно ли это сделать вот как
В функцию объекта 2 t_add() поместить $(this).trigger(' t_add ');
А в объект 1 добавить bind примерно такой
$("… ").bind("t_add ", function(e){
а здесь мы запускаем функцию объекта 1 t_crash()

});
такой вариант логически правильный или нет?

vadim5june 07.07.2013 14:17

Цитата:

Сообщение от hurt3
В функцию объекта 2 t_add() поместить $(this).trigger(' t_add ');

Триггер разве будет реагировать на запуск функции(метода)?
Насколько я помню он реагирует на события в том числе пользовательские

hurt3 07.07.2013 15:52

var obg1 ={

    t_add: function(){
        $(this).trigger('t_adds');
    }

}

$(obg1).bind("t_adds", function(){

  console.log('asd');

});

obg1.t_add()

hurt3 07.07.2013 15:54

я понимаю, что использую не совсем правильно, можете привести наглядный пример использования пользовательского события?

hurt3 07.07.2013 16:03

т.е. использование триггера в пользовательском событии

danik.js 07.07.2013 16:03

$myCollection.trigger('myEvent');

vadim5june 07.07.2013 16:08

Цитата:

Сообщение от hurt3 (Сообщение 260719)
var obg1 ={

...
obg1.t_add()

В принципе работает Ваша конструкция-чем это лучше чем если бы мы из t_add запустили нужный метод в obj1?

hurt3 07.07.2013 16:16

я не говорю что это лучше я просто не въезжаю как навешивать иначе тригер на пользовательское событие.
почему нельзя напрямую запускать метод другова объекта, отвечаю
при разработке сложных приложений ui и подобной темы бизнес-процессы программы как известно строятся на логических частях. хорошо если программка маленькая и в ней работают 2 объекта но что если у нас будет фабрика генерирующая разные объекты, разумеется они должны быть закрыты друг от друга, общение между ними может происходить через паттерн mediator, и получается, что сам jquery и выступает таким паттерном т.к. предоставляет механизмы сигнализации через тригеры о происходящих событиях для всякого рода bind
я не занимаюсь проф разработкой на js, если я не прав прошу поправить

hurt3 07.07.2013 16:19

danik.js,
я понимаю что есть $myCollection.trigger, хорошо вот событие 'myEvent',
что с ним делать, при каких событиях оно будет срабатывать?

hurt3 07.07.2013 16:20

допустим есть событие click оно срабатывает при клике а myEvent , где должен сработать?


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