Я думаю, что это может быть уменьшено до одной функции, если вы хотите / можете внести изменение или две в разметку, над которой она работает.
Я бы добавил класс к 'mouseover' SPANs
, чтобы действовать как ловушка для jQuery, а другой для SPANs
, который вы прячете и раскрываете.Затем, поскольку вы, похоже, следуете соглашению '#CU_1'
активирует '#1_CU'
(с одним исключением), возможно, вы могли бы переписать свою функцию следующим образом:
jQuery('.mouseoverhook').mouseover(function()
{
var idbits=$(this).attr('id').split('_');
jQuery('.HideShowhook'+idbits[1]).addClass('hidden');
jQuery('#'+idbits[1]+'_'+idbits[0]).removeClass('hidden');
}
Если вы можете изменить '#hardphone'
следовать тому же соглашению, тогда оно должно работать как есть.Если нет, вам нужно изменить его, чтобы учесть следующее исключение:
jQuery('.mouseoverhook').mouseover(function()
{
var idbits=$(this).attr('id').split('_');
jQuery('.HideShowhook'+idbits[1]).addClass('hidden');
if(idbits[0]!="hardline")
jQuery('#'+idbits[1]+'_'+idbits[0]).removeClass('hidden');
else
jQuery('#hardphone_'+idbits[1]).removeClass('hidden');
}
Так что теперь все ваши spans
, которые раньше выглядели так: <span id="CU_1"></span>
будут <span id="CU_1" class="mouseoverhook"></span>
и все ваши spans
, которые выглядели так: <span id="1_CU"></span>
будет <span id="1_CU" class="HideShowhook1"></span>
.
Примечание: я на самом деле не проверял это.