Операторы Switch довольно уродливы.
var things = ['attorney', 'estate', 'insurance', 'financial', 'trust', 'death'];
var guide = {
t1: 'attorney', t2: 'estate', t3: 'insurance', t4: 'financial', t5: 'trust', t6: 'death'
};
$('#t1, #t2, #t3, #t4, #t5, #t6').click(function() {
var clicked = $(this).attr('id');
$.each(things, function(_, thing) {
var $thing = $('#' + thing);
if (guide[clicked] == thing) $thing.show(); else $thing.hide();
});
});
Вы можете также рассмотреть возможность установки обработчика событий с помощью live()
вместо того, чтобы напрямую указывать на "t" штуковины, какими бы они ни были. Также было бы лучше, если бы всем «вещам» (адвокату и т. Д.) Можно было дать имя класса, потому что тогда вы могли бы просто быстро скрыть их все в обработчике кликов с помощью
$('.thingClass').hide();
, а затем просто сделайте видимым тот, который соответствует вкладке, на которую вы нажали. Тогда это может выглядеть примерно так:
var guide = {
t1: 'attorney', t2: 'estate', t3: 'insurance', t4: 'financial', t5: 'trust', t6: 'death'
};
$('#t1, #t2, #t3, #t4, #t5, #t6').click(function() {
$('.thingClass').hide();
$('#' + guide[$(this).attr('id')]).show();
});
Наконец, вы можете рассмотреть возможность использования одного из доступных плагинов для вкладок jQuery: -)