Когда вы открываете один, добавьте в него новый класс, который указывает, что он является активным.И каждый раз, когда вы что-то открываете, закрываете активный.
$('#foo').toggle(function(){
$('.active').animate({marginLeft: '0'}, 1000).removeClass('active');
$('#foobox').animate({marginLeft: '354'}, 1000).addClass('active');
},
function(){
$('#foobox').animate({marginLeft: '0'}, 1000).removeClass('active');
});
Также я бы порекомендовал изменить ваш HTML и jQuery, чтобы вам понадобился только один обработчик событий.Например, вместо этого:
<div id="foo">Link</div>
<div id="foobox">Content</div>
<div id="foo2">Link</div>
<div id="foobox2">Content</div>
Вы можете сделать:
<div class="foo" data-target="1">Link</div>
<div id="foobox-1">Content</div>
<div class="foo" data-target="2">Link</div>
<div id="foobox-2">Content</div>
со следующим jQuery:
$('.foo').toggle(function(){
$('.active').animate({marginLeft: '0'}, 1000).removeClass('active');
$('#foobox-'+$(this).data('target')).animate({marginLeft: '354'}, 1000).addClass('active');
},function(){
$('#foobox-'+$(this).data('target')).animate({marginLeft: '0'}, 1000).removeClass('active');
});