Когда контейнер растет, перераспределение для вектора требует копирования всех элементов в новый блок памяти. Рост двухсторонней очереди выделяет новый блок и связывает его со списком блоков - никакие копии не требуются.
, Конечно, можно определить, что различный контейнер поддержки используется, если Вам нравится. Таким образом, если у Вас есть стек, который Вы знаете, не собирается расти очень, говорить ему использовать вектор вместо двухсторонней очереди, если это - Ваше предпочтение.
Возможно, вы можете установить глобальную переменную
var disable_keyevents = false;
$('textarea,input')
.focus(function() { disable_keyevents = true })
.blur(function() { disable_keyevents = true; });
, тогда просто проверьте значение disable_keyevents в событии $ (document) .keypress перед переключением.
$(document).keypress(function(e) {
if ($(e.target).is('input, textarea')) {
// event invoked from input or textarea
}
...
});
Этот код срабатывает, когда пользователь нажимает символ ASCII # 96 внутри вашей формы - вы можете использовать это, чтобы отключить / изменить "код по умолчанию" для этого нажатия клавиши.
$('#my_form_field').live('keypress', function(e) {
if (e.keyCode == 96) {
e.preventDefault();
// Do stuff.
}
});