keyCode charCode
function keymove(event) { if (event.preventDefault) { event.preventDefault(); event.stopPropagation(); } else { event.returnValue = false; event.cancelBubble = true; } event = (event) ? event : window.event; // IE if (event) { if ($("div1")) { начальные координаты объекта var code = (event.charCode) ? event.charCode : event.keyCode; switch(code) { case 37: сдвиг влево // не работает в Опере break; case 38: сдвиг вверх // не работает в Опере break; case 39: сдвиг вправо // работает в Опере break; case 40: сдвиг вниз // работает в Опере break; } } } return false } document.onkeypress = keymove; Есть JS-код. Великолепно работает перемещение в ФФ, а вот в Опере смещается только вправо и вниз. В чем проблема? В опере используются другие коды для клавиш? |
Ну так добавьте alert, посмотрите какой код клавиши показывает в Опере, неужто трудно догадаться?
|
Спасибо за совет! Но в том-то и дело, что показывает те клавиши, которые нужно. 37 и 38 соответственно.
|
Цитата:
Цитата:
|
Вот и я не понимаю. Действия по сдвигу противоположные клавишам вправо и вниз, а все равно не работает. Причем только в Опере не работают..
|
Вроде нашел неточность.
Когда нажимаю вправо - смещается на 2px, хотя var xLeft = $("div1").offsetLeft + 1; Когда нажимаю влево - смещается на 1px, если var xLeft = $("div1").offsetLeft - 2; |
MaxPayne, не работает потому что в опере оно уже занято, читай http://www.artlebedev.ru/tools/techn...ow-navigation/
там сделали для оперы Ctrl + Shift ... |
1. event = (event) ? event : window.event;
пожалуйста разжуйте мне это действо! 2. Ты пытаешься двигать предмет какой-нибудь? ..у меня в опере работают все стрелки.. 3. А вот в ФФ нихренюшиньки не пойму как клавиши оживить и в опере не работает правая кнопка мыши нивкакую. if (navigator.appName == "Opera") { document.oncontextmenu = new Function("[I]действие не работает[/I]; return false"); document.onkeypress = f_KeyPress; } if (navigator.appName == "Netscape") { document.oncontextmenu = new Function("[I]действие[/I]; return false"); document.onkeyup = new Function("alert (event.keyCode);"); [I]// не работает[/I] } if (navigator.appName == "Microsoft Internet Explorer") { document.oncontextmenu = new Function("[I]действие[/I]; return false"); document.onkeydown = f_KeyPress; } function f_KeyPress () { if (event.keyCode == 1094 || event.keyCode == 38) действие; if (event.keyCode == 1099 || event.keyCode == 40) действие; if (event.keyCode == 1092 || event.keyCode == 37) fдействие; if (event.keyCode == 1074 || event.keyCode == 39) действие; return false; } |
Цитата:
element.onclick = function(event) { if(typeof event == "undefined") { event = window.event; } … } |
Не знал! Окей спасибо с ентим разобрался по ссылке тернарный оператор.
А можно еще про клавиши в ФФ? Пожалуйста прямо по скрипту. |
Цитата:
|
Я про свой скрипт.
|
Изменять контекстное меню в опере может разрешить только пользователь:
Инструменты → Настройки → Дополнительно → Содержимое → Настройки JavaScript → Позволит контролировать правую кнопку мыши. Пример со стрелками по ссылке работает в FF. |
Цитата:
element.onclick = function(event) { event = event || window.event; … } |
Цитата:
|
Kolyaj,
раз тернарный оператор не знаком человеку, думаю, такая штука: Цитата:
Цитата:
Цитата:
|
Цитата:
А пр.кл.мыши использовать в моем случае с рабочим конт.меню нет смысла. и Еще Разъесни пожалуйста if (navigator.appName == "Opera") { document.onkeypress = f_KeyPress; } if (navigator.appName == "Netscape") { document.onkeydown = f_KeyPress; } if (navigator.appName == "Microsoft Internet Explorer") { document.onkeydown = f_KeyPress; } function f_KeyPress (event) { evt = (event.keyCode) ? event.keyCode : event.which; if (evt == 1094 || evt == 38) {действие} if (evt == 1099 || evt == 40) {действие} if (evt == 1092 || evt == 37) {действие} if (evt == 1074 || evt == 39) {действие} } 1. Для чего event вводить в фунцию - function f_KeyPress (event) 2. И здесь в отличие от первого скрипта не работает ентот в IE? Для Опреы и IE использую разные события keyPress и keyDown соответственно т.к. заблокировать передвижение страницы клавишами стрелок в каждом браузере можно разными событиями с return false |
АААААААА понял что б в IE работало надо добавить
function f_KeyPress (event) { event = (event) ? event : window.event; evt = (event.keyCode) ? event.keyCode : event.which; if (evt |
Цитата:
|
А вы не моглибы объяснить с точки зрения вызова функции типа:
если есть: function ClickMyKey (key, key2) {} то должен быть ее вызов: ClickMyKey (key, key2); Если я правильно понимаю то при выражении document.onkeypress = ClickMyKey; именно синтаксис языка подразумевает, данное событие передать в функцию обработчика? |
В W3C-модели событий в ClickMyKey первым аргументом будет передан объект "событие", в IE ничего не передается, в нем объект "событие" можно получить по ссылке window.event.
|
Ясненько боль маля. Спсб.
Маленькое отступление: где можно прочесть про то как учесть пользователей ONLINE. За ранее спасибо. |
Здравствуйте!
В Opera 10.53 стрелка вниз не работает. Все остальные стрелки работают нормально. Что бы получить keyCode 40 требуется зажать Alt+Ctr+вниз тогда keyCode отображается. Как можно выйти из этой ситуации. А мне нужно что бы скрипт именно реагировал на просто клавишу вниз. this.keyControl = function(e, obj) { if(this.isActive) { var e = e || window.event; alert(e.keyCode); } } Очень странно, написал простенький скрипт, который почему то работает нормально в опере document.onkeydown = function(e) { var e = e || window.event; alert(e.keyCode); } Придется разбираться :) Нашел в чем причина. Почему то на событие onkeyup e.keyCode 40 не выводится, а на onkeydown выводится :) Это глюк? |
Цитата:
|
для Tab в opera то же самое.
|
Цитата:
|
в jQuery tab на keyup ни в одном браузере не срабатывает.
|
Цитата:
Честно говоря вообще не сторонник этих библиотек! |
HelpeR, фреймворк не обязан предусматривать все случаи и подгадывать, что напишет скриптёр.
|
exec, вам не кажется, что по этой причине, легче написать свой скрипт, который работал бы в точности под ваши нужды, нежели загружать 30кб кода, а потом возиться с ним. Да конечно это не в каждом случае так. Согласен, что в некоторых случаях удобнее использовать именно эти библиотеки. Вам не кажется, что jQuery можно назвать новым языком программирования, который нужно учить? А не лучше ли выучить чистый js и творить, что душе угодно?!
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Цитата:
p.s. Фреймворк просто позволяет не решать еще раз проблемы, которые уже решили создатели фреймворка UPD. p.p.s. я бы сказал, что jQuery - скорее библиотека, чем фреймворк |
Часовой пояс GMT +3, время: 19:54. |