I am trying to make next/previous page with ajax left/right arrows keys working (like on facebook). Everything is fine and works, but I also have form on my page and if user focus on that form I want to stop observing left/right key, because without that you can’t move with arrows in the form, you are getting next/previous image instead of movement in the form.
My actual code is here, the comment_name is id of the field, if I first click into the field then the observing of the keydown is stopped. But if I first press left/right key then clicking into form does not stop observing.
It seems to me like it can’t work with ajax-returned 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');
});
The page is here http://beta.sigut.net/photos/2027, the current code in javascripts/application.js
Thank you very much! maybe my approach is all wrong…
You have to bind the observe every time new AJAX content is loaded.
That means calling
After adding the AJAX loaded html into the DOM.