Ну, это всегда очень хорошая идея для создания пространств имен и избегать глобальных переменных любой ценой. Но в данном конкретном случае вам просто нужно немного сахара Javascript & jQuery:
var data = [{id: '#formats1', tag: 'div.cds'}, {id: '#formats2', tag: 'div.lp'} /*, ... */];
$.each(data, function( _, info ) {
$(info.id).hover(function() {
var $tag = $(info.tag),
mypos = $.extend({
width: $tag.outerWidth(),
height: $tag.outerHeight()
}, $(this).position());
$tag.show().css({
left: mypos.left - mypos.width + 'px',
top: mypos.top - mypos.height + 'px'
});
}, function() {
$("div.cds").hide();
});
});
Единственная разумная переменная, которая должна быть закрыта здесь, это $('div.cds')
. Например, вы можете обернуть весь этот код в самопризывающийся метод:
(function _namespace() {
var $tag = $('#div.cds');
$('#formats1, #formats2').hover(function() {
});
// ...
}());