jQuery Key Capture plugin
by amindunited
HTML
<textarea id="egArea">
</textarea>
CSS
#egArea {
width: 600px;
height:200px;
}
JavaScript
(function($){
var defaults = {
preventDefault : false,
callback : null,
keys : ['all']
}
var methods = {
init : function( options ){
var that = this;
var data = $(that).data('keyCapture');
if ( !data ) {
$(this).data('keyCapture', options);
}
else {
console.log("else");
console.log( data );
}
methods.addListeners(that);
},
addListeners : function(elm){
$(elm).on('keydown', function(e){
methods.keyDown(e);
})
},
keyDown : function(e){
var keyCode = methods.getKeyCodeValue(methods.getKeyCode(e), e.shiftKey);
var data = $(e.target).data('keyCapture');
var val = $.extend({}, e, {'keyCode':keyCode})
if ( jQuery.inArray('all', data.keys ) >= 0) {
if ( data.preventDefault ) {
e.preventDefault();
}
console.log("keyDown sees " + keyCode);
data.callback.apply( $(this), val);
}
else if ( jQuery.inArray(keyCode, data.keys) >= 0 ) {
if ( data.preventDefault ) {
e.preventDefault();
}
//var val = $.extend({}, e);
//console.log(val);
data.callback.apply( $(this), [val, arguments]);
}
else {
console.log(keyCode + " is not a watsched key");
}
return $(this);
},
addKeys : function(elm, keys){
var data = $(elm).data('keyCapture')
for ( var i = 0; i < keys.length; i++ ){
data.keys.push(keys[i]);
}
},
getKeyCode : function(e) {
var keycode = null;
if(window.event) {
...