31.10.2014

Горячие головыклавиши: Часть 2.

Горячие клавиши: Часть 2.

Выбор решения

Итого

Mousetrap

Mousetrap

			// Подписываемся на событие
			Mousetrap.bind("a", function() { console.log("Это a"); });
			#!+ // нажимаем «Это a»
			#!- // log: «Это a»

			#!+ // Подписываемся ещё раз
			#!- Mousetrap.bind("a", function() { console.log("Да, это a!"); });
			#!+ // нажимаем «a»
			#!- // log: «Да, это a!»
		

Где «Это a»?

Мда…

keymaster

keymaster: bind

			// Подписываемся на событие
			key("a", function() { console.log("Это a"); });
			#!+ // нажимаем «Это a»
			#!- // log: «Это a»

			#!+ // Подписываемся ещё раз
			#!- key("a", function() { console.log("Да, это a!"); });
			#!+ // нажимаем «a»
			 // log: «Это a»
			#!- // log: «Да, это a!»
		

unbind?

keymaster: scope

Делам форк

Делам форк

rubaxa:keymaster

rubaxa:keymaster

			key.on("esc", function () { console.log("первый"); });
			#! key.on("esc", function () { console.log("второй"); });
			#! // нажимаем esc
			#! // log: «первый»
			#! // log: «второй»
		

rubaxa:keymaster

			key.on("esc", logFirst);
			#! key.on("esc", logSecond);
			#! key.on("esc", logFirst);
			#! // нажимаем esc
			#! // log: «второй»
			#! // log: «первый»
		

rubaxa:keymaster

			key.on("esc", function () { console.log("первый"); });
			#! key.on("esc", function () { console.log("второй"); });
			#!+ key.on("esc", function (evt) {
				#! evt.preventDefault(); // отменяем действие по умолчанию
				#! evt.stopImmediatePropagation(); // Остановить!!1
				#! console.log("только я");
			#!- });
			#! // нажимаем esc
			#! // log: «только я»
			#! всё
		

rubaxa:keymaster

			var el = documment.getElementById("foo");
			key.on("esc", el, function () { console.log("OK"); });
			#!+ // нажимаем esc
			#!- // log: «OK»
			#! el.parentNode.removeChild(el);
			#! // нажимаем esc
			#! // ничего
			#! documment.body.appendChild(el);
			#!+ // нажимаем esc
			#!- // log: «OK»
		

The End