прототип: нажатие на документ, прекратить наблюдение, когда в форме - PullRequest
1 голос
/ 04 ноября 2010

Я пытаюсь заставить работать следующую / предыдущую страницу с помощью кнопок со стрелками вправо / влево (как на Facebook). Все хорошо и работает, но у меня также есть форма на моей странице, и если пользователь сосредоточится на этой форме, я хочу прекратить наблюдать левую / правую клавишу, потому что без этого вы не можете двигаться со стрелками в форме, вы получаете следующее предыдущее изображение вместо движения в форме.

Мой действительный код здесь, имя_комментария - это идентификатор поля, если я сначала щелкаю в поле, то наблюдение за клавиатурой прекращается. Но если я сначала нажму левую / правую клавишу, то нажатие на форму не прекращает наблюдение.

Мне кажется, что он не может работать с возвращаемым ajax html ...?

document.observe("dom:loaded", function() {

  document.observe('keydown', function(event){
    if(event.keyCode == Event.KEY_RIGHT) {
      if (Prototype.Browser.IE) {
        $('next').click();;
      }
      else {
        $('next').simulate('click');
      }
    }
  });

  $('comment_name').observe('focus', function(event){
   document.stopObserving('keydown');
  });

Страница находится здесь http://beta.sigut.net/photos/2027, текущий код в javascripts / application.js

Большое спасибо! может быть, у меня неправильный подход ...

1 Ответ

1 голос
/ 04 ноября 2010

Вы должны связывать наблюдения каждый раз, когда загружается новый контент AJAX. Это значит звонить

  $('comment_name').observe('focus', function(event){
   document.stopObserving('keydown');
  });

После добавления загруженного HTML AJAX в DOM.

...