You can use the stop() function to stop the animation created in the mouseleave
event:
$(document).ready(function() {
$('.item').mouseenter(function() {
$(this).stop().css({
'opacity': 0
});
}).mouseleave(function() {
$(this).delay(300).animate({
'opacity': 1
}, 500);
});
});