Думаю все дело в том, что чтобы удалить обработчик нужно передать именно ту же функцию что и была передана при назначении. Для этого вам нужно ссылаться на одну и ту же функцию. Попробуйте обернуть функцию-обработчик в именованную функцию, т.е. вам нужно объявить ее
function handler(event){
var scrollTo,
scrollDistance = 80,
delta;
if (event.type == 'mousewheel') {
delta = event.originalEvent.wheelDelta / 100;
} else if (event.type == 'DOMMouseScroll') {
delta = - event.originalEvent.detail / 3;
}
scrollTo = latestKnownScrollY - delta * scrollDistance;
if (scrollTo) {
event.preventDefault();
event.stopPropagation();
$('body,html').stop().animate( {
scrollTop : scrollTo
} , 500);
}
}
и применять вот таким образом
$(window).on("mousewheel DOMMouseScroll" , handler() )
После этого вы можете просто отключить этот обработчик.
Как-то типа так:
$(window).off("mousewheel DOMMouseScroll" , handler() )