Кажется, это самый простой способ сделать это. Я предполагаю, что вы скрываете их с отрицательным текстом по причинам доступности (в отличие от отображения: нет;). Единственное предложение, которое я мог бы сделать для очистки, если вы еще этого не делаете, это написать одну функцию, которая работает для всех кнопок.
$('.icon').click(function() {
$(this).next('.nav-item').animate({"left":"+=56px"},"slow");
)};
Еще одна вещь, на которую вы, возможно, захотите взглянуть, - это некоторые достижения в скрытии элементов, которые вы хотите прочитать с помощью программ чтения с экрана, с помощью этого кода: http://snook.ca/archives/html_and_css/hiding-content-for-accessibility (Опять же, если предположить, что именно поэтому вы скрываете его с отрицательным идентификатором):
.element-invisible {
position: absolute !important;
height: 1px; width: 1px;
overflow: hidden;
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
}
Вероятно, из-за ответа на вопрос, но подумал, что упомяну это.