В чем проблема, почему именно при наличии события on('mouseleave') в событии on('mouseenter') при установке offset() значения прибавляются, а не перезаписываются?
https://jsfiddle.net/wasct7m4/
Если mouseleave нет, то все нормально.
jQuery(document).ready(function() {
jQuery('span').on('mouseenter', function() {
jQuery('div').offset({top: 10, left: 10}).show();
}).on('mouseleave', function() {
jQuery('div').hide();
});
});