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

hurt3 06.07.2013 20:33

пользовательские cобытия и функции jquery
 
Всем привет,я новичок и извиняюсь если спрошу очевидные вещи но сразу к вопросу
допустим у нас есть див когда мы по нему производим клик срабатывает функция jquery но при этом мы так же при клике на этот див можем как известно повесить доп плюшки делается это вот так

$("div").bind("click", function(e){
// выполнить то, что нам нужно
});

вопрос вот в чем когда происходит создание пользовательской функции
$.fn.run....
как сделать так, что бы когда данная функция вызывается $('div').run()
могли срабатывать вызовы с bin

как я понимаю это можно сделать лишь определив события через
тригеры в самой функции т.е.
$(this).trigger('run');
таким образом получается, что я объявляю событие "run"
и фактически событие "run" и функция "run" это две разные вещи, так ли это?

полный код получается примерно таким

$.fn.run = function() {
$(this).trigger('run');

}

$(".logo").bind("run", function(e){
// выполняем, что нужно
});
//запускаем
$(".logo").run()

т.е. получается события это своеобразные метки которые сигналятчто активны там где выставлены
и можно поставить событие на начало и конец действия start_run
stop_run
таким образом получается что отчасти мы "задействуем" функционал паттерна "mediator" так ли это?
т.е. объекта который создан что бы быть в курсе всего что происходит с другими объектами, я все верно понимаю?

т.е. получается, что объект jquery несет функционал этого паттерна?

И еще вопрос можно ли это все сделать проще как то иначе создать функцию , которую можно сразу повесит на bind ?
Не ясно вот, что зачем нужен такой механизм сигнализации с событиями
на функции, когда можно было разработчикам в самом движке jquery прописать действия начала и конца выполнения для любой функции и сделать их свободно навешиваемыми на bind?

danik.js 07.07.2013 12:26

Научись:
1) Писать без ошибок.
2) Форматировать код.
3) Кратко формулировать вопрос.

И тогда тебе улыбнется удача.

alexman86 08.07.2013 09:13

сори не туда написал


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