Prevent key capture within ALL editable elements, not just those within slides

This commit is contained in:
imakewebthings 2012-07-13 20:58:33 +08:00
parent 3e327bd1f6
commit f13357dd16
2 changed files with 8 additions and 6 deletions

View file

@ -181,7 +181,10 @@ that use the API provided by core.
methods.prev();
e.preventDefault();
}
});
})
/* Stop propagation of key events within editable elements */
.undelegate('input, textarea, select, button, meter, progress, [contentEditable]', 'keydown', esp)
.delegate('input, textarea, select, button, meter, progress, [contentEditable]', 'keydown', esp);
/* Bind touch events for swiping between slides on touch devices */
$container.unbind('touchstart.deck').bind('touchstart.deck', function(e) {
@ -212,10 +215,7 @@ that use the API provided by core.
}
});
})
.scrollLeft(0).scrollTop(0)
/* Stop propagation of key events within editable elements of slides */
.undelegate('input, textarea, select, button, meter, progress, [contentEditable]', 'keydown', esp)
.delegate('input, textarea, select, button, meter, progress, [contentEditable]', 'keydown', esp);
.scrollLeft(0).scrollTop(0);
/*
Kick iframe videos, which dont like to redraw w/ transforms.

View file

@ -231,10 +231,12 @@ describe('Deck JS', function() {
});
it('should not trigger events that originate within editable elements', function() {
var $outside = $('<input type="text" />').appendTo('body');
e = jQuery.Event('keydown');
e.which = 87;
$('.alt-slide1 input').trigger(e);
$outside.trigger(e);
expect($.deck('getSlide')).toHaveClass('alt-slide1');
$outside.remove();
});
});
});