Имитация нажатия на клавишу
В общем нужно сэмулирвоать нажатие клавиши, начал искать, нашел такой код на jq:
<script src='http://code.jquery.com/jquery-1.7.2.js'></script>
<body onkeyup='a(event)'>
<script>
var e = jQuery.Event("keyup", { keyCode: 64 });
// trigger an artificial keydown event with keyCode 64
jQuery("body").trigger( e );
function a(event) {
alert(event.keyCode)
}
</script>
Как видите работает. Посмотрел в jq не нашел ф-ии Event, может кто знает как она устроена? Или хотя бы на словах объясните. |
пишет в объект события нужный keyCode? )
|
nerv_,
спасибо !areyoukiddingme! Я имею ввиду внутренности. Я просто принципиально не хочу юзать jq. Хочу на чистом писать. Вот так :) |
Цитата:
http://api.jquery.com/category/events/event-object/ В конце концов, залезь в код и посмотри. Он же открыт. |
nerv_,
Цитата:
|
9xakep, открываешь http://code.jquery.com/jquery-1.7.2.js и вставляешь эту строку
jQuery.Event = в поиск. Поиск с учетом регистра. |
nerv_,
А я искал: Event с учетом регистра) Спасибо, надеюсь пойму как устроено) |
Цитата:
Они наверно просто выполнили функцию |
9xakep,
я поискал =);
jQuery.Event = function( src, props ) {
// Allow instantiation without the 'new' keyword
if ( !(this instanceof jQuery.Event) ) {
return new jQuery.Event( src, props );
}
// Event object
if ( src && src.type ) {
this.originalEvent = src;
this.type = src.type;
// Events bubbling up the document may have been marked as prevented
// by a handler lower down the tree; reflect the correct value.
this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
// Event type
} else {
this.type = src;
}
// Put explicitly provided properties onto the event object
if ( props ) {
jQuery.extend( this, props );
}
// Create a timestamp if incoming event doesn't have one
this.timeStamp = src && src.timeStamp || jQuery.now();
// Mark it as fixed
this[ jQuery.expando ] = true;
};
function returnFalse() {
return false;
}
function returnTrue() {
return true;
}
|
Я тоже не совсем понял, о какой имитации нажатия на клавишу идёт речь.
Обычно нажатие приводит к появлению символа или выполнению каких-либо действий, которые с этим нажатием связали: что нужно имитировать появление символа (здесь можно обойтись и без нажатия) или выполнение обработчика нажатия на эту клавишу (здесь можно вызывать код обработчика). Пример (не совсем по теме:) )
<input id="inp" type="button" value="click">
<script>
window.onload = function () {
var inp = document.getElementById('inp');
inp.onclick = function () {
inp.value = String.fromCharCode(72, 69, 76, 76);
setTimeout(function () {inp.value += String.fromCharCode(79)}, 2000)
}
}
</script>
|
| Часовой пояс GMT +3, время: 13:44. |