Чтобы избежать запуска нескольких анимаций, вы должны stop () элемент перед вызовом нового animate()
$(function(){
$(".one").mouseout(function(){
$(".two").stop(true, true).animate({left:-120}, 100);
});
});
Если хотите, посмотрите в документах о stop
прыгнуть в конце или начать с того места, где он остановился.
Для того, чтобы иметь несколько экземпляров, вы должны вместо этого сделать плагин jQuery.Если второй div находится непосредственно в первом, и нет другого div, вы можете вызвать свой плагин следующим образом:
$('div.your_div_parent').doMyFunc();
И в вашей функции вы добавите событие в $(this, '>div');
Я не могу быть более точным, потому что мне не хватает вашего кода, и я не уверен в том, что именно вам нужно в отношении вашего последнего пункта.