дубль 3 добавлена защита от повторного добавления элемента в список слежения
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.orange {
background: #FFCC00;
}
.orange + div{
display: block;
}
span {
cursor: pointer;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
jQuery.fn.hide_by_click = (function() {
var listSelector = $(),
tracking = function(event) {
listSelector.each(function(i,el) {
if (event.target != el && !$(el).has(event.target).length) $(el).fadeOut()
})
}
return function(add) {
$(document).off({'click' : tracking });
this.each(function(indx, el) {
listSelector = listSelector[add ? 'add' : 'not'](el);
});
listSelector.length && $(document).on({'click' : tracking });
return this
}
}())
$(function() {
$(".block_info_main span").hide_by_click(true); //добавить все span для контроля
$(".orange").hide_by_click(false); // убрать оранжевый из списка слежения
});
</script>
</head>
<body>
<div class='block_info_main' id='test'>1111
<div class='first'>
<span class='info orange'>Информация</span>
<div class='main'>
<span class='info_show show '>текст1</span>
</div>
</div>
<div class='first'>
<span class='info'>Информация2</span>
<div class='main'>
<span class='info_show '><b style="color: rgb(51, 51, 255)">текст2</b></span>
</div>
</div>
<div class='first'>
<span class='info'>Информация3</span>
<div class='main'>
<span class='info_show '>текст3</span>
</div>
</div>
</div>
</body>
</html>