вопрос
Подскажите пожалуйста как можно добавить в наш родной DLE возможность перехода по страницам назад вперед (теги [prev-link] [/prev-link] [next-link] [/next-link]) при помощи клавиатуры?
Есть небольшой, но полезный плагин для отлавливания клавиатурных событий jquery.hotkeys
Вот так легко и непринужденно можно биндить клавиатурные сочетания:
Вот так легко и непринужденно можно биндить клавиатурные сочетания:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>хоткеи</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script>
//Минимизированный плагин https://github.com/jeresig/jquery.hotkeys
(function(jQuery){jQuery.hotkeys={version:"0.8",specialKeys:{8:"backspace",9:"tab",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",
144:"numlock",145:"scroll",191:"/",224:"meta"},shiftNums:{"`":"~",1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(","0":")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"}};function keyHandler(handleObj){if(typeof handleObj.data!=="string")return;var origHandler=handleObj.handler,keys=handleObj.data.toLowerCase().split(" ");handleObj.handler=function(event){if(this!==event.target&&(/textarea|select/i.test(event.target.nodeName)||event.target.type==="text"))return;var special=
event.type!=="keypress"&&jQuery.hotkeys.specialKeys[event.which],character=String.fromCharCode(event.which).toLowerCase(),key,modif="",possible={};if(event.altKey&&special!=="alt")modif+="alt+";if(event.ctrlKey&&special!=="ctrl")modif+="ctrl+";if(event.metaKey&&!event.ctrlKey&&special!=="meta")modif+="meta+";if(event.shiftKey&&special!=="shift")modif+="shift+";if(special)possible[modif+special]=true;else{possible[modif+character]=true;possible[modif+jQuery.hotkeys.shiftNums[character]]=true;if(modif===
"shift+")possible[jQuery.hotkeys.shiftNums[character]]=true}for(var i=0,l=keys.length;i<l;i++)if(possible[keys[i]])return origHandler.apply(this,arguments)}}jQuery.each(["keydown","keyup","keypress"],function(){jQuery.event.special[this]={add:keyHandler}})})(jQuery);
//Назначение хоткеев
jQuery(function($) {
$(document).bind('keydown', 'Ctrl+left', function (){$('#_Ctrl_left').addClass('dirty'); return false; });
$(document).bind('keydown', 'Ctrl+up', function (){$('#_Ctrl_up').addClass('dirty'); return false; });
$(document).bind('keydown', 'Ctrl+right', function (){$('#_Ctrl_right').addClass('dirty'); return false; });
});
</script>
<style>
.dirty {color: red;}
</style>
</head>
<body>
<div id="_Ctrl_left" class="eventNotifier">Ctrl+left</div>
<div id="_Ctrl_up" class="eventNotifier">Ctrl+up</div>
<div id="_Ctrl_right" class="eventNotifier">Ctrl+right</div>
</body>
</html>