$(".flyout_hover").click(function() {
var index = $(this).index();
$('.flyout').eq(index).toggle();
$(this).siblings().children('.flyout').hide();
});
РЕДАКТИРОВАТЬ: Это потому, что .flyout не имеет братьев и сестер внутри содержащего элемента .flyout_hover. Вы должны найти братьев и сестер .flyout_hover, а затем спрятать их детей.
Скрипка здесь: http://jsfiddle.net/3GXk6/5/
Также, может быть, вы хотите использовать div вместо span для элементов .flyout_hover?
РЕДАКТИРОВАТЬ 2: Если у вас всегда есть только один .flyout div внутри его родителя, вам не нужен индекс, и вы можете просто использовать это:
$(".flyout_hover").click(function() {
$('.flyout', this).toggle();
$(this).siblings().children('.flyout').hide();
});
http://jsfiddle.net/e72hk/
РЕДАКТИРОВАТЬ 3: Когда вы заключаете их в div, как в отредактированном HTML-коде, вы можете просто сделать это вместо этого:
$(".flyout_hover").click(function() {
$('.flyout', this).toggle();
$(this).parent('div').siblings('div').find('.flyout').hide();
});
http://jsfiddle.net/e72hk/15/