Плагіни jQuery або чому іноді краще винайти велосипед Чому я відмовився від ys, Надвоє

Проект: phpRecaller Спільне завдання: побудова віконного інтерфейсу. Завдання: використання гарячих клавіш.

Звичайно, прислухаючись до думок безлічі, насамперед я нагуглив плагін. Називається він jquery.hotkeys, на той момент видається версії 0.7. Відразу ж спокусило написання зручних ярликів виду Alt+c замість кейкодів. Скачав, встановив, став його використати у проекті, але як виявилося не надовго.

У проекті я практикував виклик діалогових вікон через jquery.ui.dialog через гарячі клавіші. Кожне вікно jquery завантажувало вміст через ajax. Дуже скоро спливла проблема. Я помітив її, коли налагоджуючи ці ж гарячі клавіші через firebug моніторив ajax-запити. Виявилося, що при натисканні клавіш, замість виклику одного ajax-запиту і одного вікна, частково спрацьовували виклики і всіх інших. Частково, тому що появи вікна якраз не відбувалося, а ось ajax запит надсилався. При цьому при кліку мишею по аналогічній кнопці проблема не виявлялася.

Так бути не мало. У чому причина, я розбиратися не став.

І одразу до рішення. Код проблемної ділянки:

після недовгих мук цей код я переробив. Замінив keydown на keyup, щоб подія спрацьовувала не так часто.

var key=[]; key["c"] = 67; key["f"] = 70; key["r"] = 82; key["space"] = 32; key["enter"] = 13;

$( document ).keyup( function (evt) // відкрити вікно вхідного виклику // Ctrl+Shift+c (або Alt+c для Opera) if (evt.keyCode==key[ "c" ] && ( evt.altKey )) $( ".new_window_activator" ).click(); return false ; >

Плюсів насправді з проблеми я виніс більше, ніж головний біль:ще трохи осмислив роботу з keyCode і отримав близький до свого збоченого способу мислення код.