новый тип события в JavaScript - PullRequest
2 голосов
/ 27 мая 2011

Я хотел бы создать новый тип события в javascript.Скажем, у меня есть несколько критериев, когда пользователь hasAquiredIceCream, и я хотел бы вызвать и привязать это событие на основе критериев.Как я мог сделать новое событие в JavaScript.Я использую jQuery, поэтому в идеале я бы мог использовать его с .trigger('hasAquiredIceCream') и .bind('hasAquiredIceCream').Я предполагаю, что чистое решение javascript будет прекрасно работать с jQuery (это не должен быть плагин), это можно сделать?

1 Ответ

3 голосов
/ 27 мая 2011

Используя jQuery .trigger(), , вы можете запускать пользовательские события для любого элемента или для объекта JavaScript.

var obj = { id: 0, ... };

$(obj).bind('custom', function(e, arg, ...) { ... });
$(obj).trigger('custom', [arg, ...]);

Или, используяпростой JavaScript, реализуйте шаблон наблюдателя :

function EventHelper() {
    this.handlers = [];

    this.bind = function(fn) {
        this.handlers.push(fn);
    };

    this.trigger = function(args) {
        for (var i = 0; i < this.handlers.length; i++) {
            this.handlers[i].call(this, args);
        }
    };

    return this;
}

var event = new EventHelper();
event.bind(function() { ... });
event.trigger();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...