Fiddle : http://jsfiddle.net/hdehzec0/16/
When you enter .section it disappears therefore mouseleave function gets triggered. Instead of using .section on mouseleave use .inner since your mouse is
$(document).ready(function () { $(".inner").hide(); $(".section").mouseenter(function () { $(this).hide(); $(this).next(".inner").show(); }); $(".inner").mouseleave(function () { $(this).hide(); $(this).prev(".section").show(); }); });