Строка 14. Здесь непонятно зачем скрывать меню, если оно и так позиционируется за пределы клиентской области. Должно быть:
m.css({[set.position]:'-300px'}).removeClass('show');
Кстати, все эти определения можно вынести в CSS. Как и не понятно зачем строка 21, ее можно и удалить, а строки 25-31 заменить одной:
m.toggleClass('show').stop().animate({[set.position]:-300 + 300 * m.hasClass('show')}, 300);
Что касаемо пропадания меню, вы хотите чтобы на моб. устройствах щелчок вне меню не скрывал его?