Вы многократно подписываетесь на событие клика
$('.menu li').on('click', function(){
при каждом ресайзе, поэтому и колбек вызывается много раз при клике.
Нужно подписку вынести из ф-ции resizeScrenn и проверять на флаг isTablet, а в resizeScrenn только обновлять этот флаг вот так:
/* Ready */
$(function() {
$('.menu li').on('click', function() {
if( window.isTablet && $(this).children('.submenu').length ) { // обработка флага isTablet происходит при клике
$(this).children('.submenu').slideToggle(300);
}
});
function resizeScrenn() {
window.isTablet = $(window).width() <= 960;
}
$(window).resize( resizeScrenn ); // передаем ссылку на функцию
resizeScrenn(); //вызываем ф-ию при загрузке страницы чтобы сразу трекнуть ширину экрана
});