Ну, в принципе нормальное решение. Можно упростить
$(function() {
var isDevice = "mob"; /* mob tab desk */
$(window).on("resize", function() {
var windowWidth = $(window).width();
let newDevice = 'desk';
if (windowWidth < 768) {
newDevice = "mob";
} else if (windowWidth < 1024) {
newDevice = "tab";
}
if (isDevice !== newDevice) {
// тут пишем код
isDevice = newDevice;
}
});
});
UPD: вот более расширяемое решение.
const breakPoints = {
mob: 768,
tab: 1024,
};
const isDevice = "mob"; /* mob tab desk */
$(window).on("resize", function() {
const windowWidth = $(window).width();
const newDevice = Object.keys(breakPoints).find(
key => breakPoints[key] > windowWidth
) || 'desk';
if (isDevice !== newDevice) {
// тут пишем код
isDevice = newDevice;
}
});
тут конечно можно еще добавить всякие штуки для кеширования, или debounce функцию.