Как создать свое событие в jQuery?
Очевидно и по существу, никакими обсерверами, биндами и триггерами здесь не пахнет.
Решение оказалось не самое тривиальное, но архитектурно корректное и звучит как "Специальные события jQuery".
В рамках моей задачи, рабочая реализация выглядит следующим образом:$.event.special.dblrightclick = {
	setup : function(data, namespaces) {
		var e = $(this);
		e.bind("contextmenu", $.event.special.dblrightclick.handler);
		e.data("x", null);
		e.data("y", null);
		e.data("time", null);
		e.data("limit", data || 400);
	},

	teardown : function(namespaces) {
		$(this).unbind("contextmenu", $.event.special.dblrightclick.handler);
	},

	handler : function (event) {
		event.preventDefault();
		var e = $(this);

		if (e.data("x") == event.screenX && e.data("y") == event.screenY
			&& (event.timeStamp - e.data("time")) < e.data("limit")) {
			e.data("x", null);
			e.data("y", null);
			e.data("time", null);
			event.type = "dblrightclick";
			$.event.dispatch.apply(this, arguments);
		} else {
			e.data("x", event.screenX);
			e.data("y", event.screenY);
			e.data("time", event.timeStamp);
		}
	}
};
И, соответственно, ее использование:$("#widget").on("dblrightclick", ".button", function() {
	alert("dblrightclick fired");
});
А также управление единственным параметром задержкой:$("#widget").on("dblrightclick", ".button", 200, function() {
	alert("dblrightclick fired");
});
Очевидно, что данный код является расширением базового фреймворка и не имеет никакого отношения к бизнес-логике приложения. Как следствие - данный код можно подключать бесконфликтно к разным проектам.UPD Полное решение: https://github.com/comm1x/jquery-event-dblrightclick
Видимо не понимаете. Действительно, создать свое событие в jquery можно через методы trigger/bind - первый вызывает событие, а второй его перехватывает. Фактически, реализация паттерна observer (bind - подписчик; trigger - публикация)