我有這個標記編碼糟糕的JQuery:命名的依賴關係
<div id="holiday-details-nav">
<ul>
<li><a class="holidaydetails-description" title="Overview" href="#tab-holidaydetails-overview">Overview</a></li>
<li><a class="holidaydetails-included" title="Rooms" href="#tab-holidaydetails-rooms">Rooms</a></li>
<li><a class="holidaydetails-itinerary" title="Rates" href="#tab-holidaydetails-rates">Rates</a></li>
<li><a class="holidaydetails-accommodation" title="Information" href="#tab-holidaydetails-information">Information</a></li>
<li><a class="holidaydetails-reviews" title="Reviews" href="#tab-holidaydetails-reviews">Reviews</a></li>
</ul>
</div>
隱藏在這些選項卡中的內容的表現是由開始這樣
一些jQuery代碼來控制頁面上的一些標籤$(document).ready(function() {
// Hide all tabs apart from the overview
$('#holiday-details-tabs div:#tab-holidaydetails-rooms').hide();
$('#holiday-details-tabs div:#tab-holidaydetails-rates').hide();
$('#holiday-details-tabs div:#tab-holidaydetails-information').hide();
$('#holiday-details-tabs div:#tab-holidaydetails-reviews').hide();
...
問題是,如果我添加,刪除或重命名標籤(就像我剛剛完成),那麼我必須更改所有這些代碼。我想要的是添加,重命名或刪除儘可能多的選項卡,但不必修改此JQuery代碼。
我並不是在尋找某人爲我編寫解決方案,而是想開始討論可用於避免這種命名依賴的工具,技術等。
編輯
我也有被點擊選項卡時,該位醜陋的。
$('#holiday-details-nav ul li a').click(function() {
// Remove active class from all links
$('#holiday-details-nav ul li').removeClass('active');
//Set clicked link class to active
$(this).parent().addClass('active');
// Set variable currentTab to value of href attribute of clicked link
var currentTab = $(this).attr('href');
// Hide all tabs
$('#holidaydetails-description-imagecontainer').hide();
$('#holiday-details-tabs div:#tab-holidaydetails-overview').hide();
$('#holiday-details-tabs div:#tab-holidaydetails-rooms').hide();
$('#holiday-details-tabs div:#tab-holidaydetails-rates').hide();
$('#holiday-details-tabs div:#tab-holidaydetails-information').hide();
$('#holiday-details-tabs div:#tab-holidaydetails-reviews').hide();
$('#holiday-details-bottom').show();
$('#holiday-details-left-booknow').show();
// Show div with id equal to variable currentTab
$(currentTab).show();
$('#holidaydetails-description-imagecontainer').show();
return false;
});
感謝,
薩欽
但是,然後點擊我有更多的醜 - 請參閱上面的編輯。 –
爲什麼不使用標題標籤進行選擇而不是添加更多類?標題標籤已經存在。 – Austin
無需添加額外的類,並且這仍然是硬編碼的東西,所以如果OP對標籤列表做任何更改,OP仍然需要更新代碼... – Ian