Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.07.2011, 15:17
Новичок на форуме
Отправить личное сообщение для uraf78 Посмотреть профиль Найти все сообщения от uraf78
 
Регистрация: 07.07.2011
Сообщений: 2

Отключение всех событий от элемента
Зраствуйте,
у меня проблема с тем что внешняя js библиотека привязывает событие на нажатие клавиши "пробел", из-за чего в полях input я не могу поставить пробел. Код библиотеки я не могу менять, так как он зашифрован.

может кто подскажет как от элемента input отключить все события связанные с нажатием клавиш.
Пробовал на jquery:
$("input").unbind('keydown');
$("input").unbind('keypress');
$("input").unbind('keyup');
но не помогает

Заранее благодарю.
Ответить с цитированием
  #2 (permalink)  
Старый 07.07.2011, 15:57
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

<input id="a"><br>Пробел нажат раз : <b id="b">0</b>  <br> <button onclick="stop(this)">Stop it!</button>

<script>
var input = document.getElementById("a"),
     log = document.getElementById("b"),
     pressed=0,
     handler = function (e){
           if(e.keyCode===32){ 
                   log.innerHTML=++pressed;
          }
      }
input.addEventListener( 'keydown', handler, false);

function stop(a){

input.onkeydown = null;
input.removeEventListener('keydown', handler, false)

a.setAttribute('disabled','disabled')
}
</script>

Последний раз редактировалось melky, 07.07.2011 в 16:33.
Ответить с цитированием
  #3 (permalink)  
Старый 07.07.2011, 16:03
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

melky, а для addEventListener?
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #4 (permalink)  
Старый 07.07.2011, 16:20
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

только надо знать обработчик

нука, этот способ покруче, но теряются все ссылки, все аттрибуты ... поставьте сами. зато обработчик отпадает

<input id="a"> <button onclick="stop(this)">Stop it!</button> <br>Пробел нажат раз : <b id="b">0</b> 

<script>
var input = document.getElementById("a"),
     log = document.getElementById("b"),
     pressed=0,
     handler = function (e){
           if(e.keyCode===32){ 
                   log.innerHTML=++pressed;
          }
      }
input.addEventListener( 'keydown', handler, false);





function stop(a){

// удаляем старый
document.body.removeChild( input );

// вставляем новый
input = document.body.insertBefore(  document.createElement( 'input' )  , document.body.firstChild );

// красивости...
a.setAttribute('disabled','disabled');
a.innerHTML = "replaced"
}
</script>

Последний раз редактировалось melky, 07.07.2011 в 16:33.
Ответить с цитированием
  #5 (permalink)  
Старый 07.07.2011, 16:31
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от melky
input.addEventListener( 'keydown', handler);
false забыл.
input.addEventListener( 'keydown', handler, false);
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #6 (permalink)  
Старый 07.07.2011, 16:41
Новичок на форуме
Отправить личное сообщение для uraf78 Посмотреть профиль Найти все сообщения от uraf78
 
Регистрация: 07.07.2011
Сообщений: 2

пока не помогло
я немного поэкспериментировал и выяснилось что обработчик висит не на элементе input, а вообще на всем окне так как срабатывает при нажатии на пробел в любой точке экрана
Как с этим быть, ка его грохнуть?
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Браузер не успевает определить высоту вновь созданного через XMLHttpRequest элемента Lockpickup AJAX и COMET 17 25.04.2011 17:58
Как изменить свойство css у всех элементов одного класса AlexJ Events/DOM/Window 7 19.03.2011 06:25
помогите "уловить" момент появления элемента Bebarr Swallow Events/DOM/Window 4 18.03.2011 08:16
Скопировать обработчики событий с одного элемента на другой. Jurasmi Events/DOM/Window 3 10.11.2010 19:03
Последовательность обработки событий rolling Events/DOM/Window 2 14.09.2009 23:26