我已經修改了標記和JS來達到那裏,但我認爲這個代碼應該滿足選項卡的要求,並刪除一些內聯JS。
基本上,存儲活動圖像的src在爲每個標籤按鈕的屬性:
<div id="tab1" class="tab" style="..."
data-image-active="./images/button1-active.jpg"
data-image="./images/button1.jpg">
<img src="./images/button1.jpg" />
</div>
然後使用它來設置在JavaScript爲每個標籤按鈕活動狀態。我已將您當前的點擊處理代碼移動到每個循環中。
$(document).ready(function(){
var $contents = $('.tab-content');
$contents.slice(1).hide();
$('.tab').each(function() {
$(this).hover(function() {
setButtonActive($(this));
}, function() {
if (!$(this).hasClass('active')) {
setButtonInactive($(this));
}
});
$(this).click(function() {
resetAllButtons();
setButtonActive($(this));
$(this).addClass('active');
var $target = $('#' + this.id + 'show').show();
$contents.not($target).hide();
})
});
});
function setButtonActive(button) {
var img = button.find('img'),
imgSrc = button.attr('data-image-active');
img.attr('src', imgSrc);
}
function setButtonInactive(button) {
var img = button.find('img'),
imgSrc = button.attr('data-image');
img.attr('src', imgSrc);
}
function resetAllButtons() {
$('.tab').removeClass('active').each(function() {
setButtonInactive($(this));
});
}
來源
2016-05-31 09:46:57
Bat
感謝,這幾乎完美地工作,唯一的事情是當我點擊下一個按鈕,前一個保持點擊,直到我滾過它,是否有辦法讓它返回到沒有點擊儘快其他人點擊? – HTMellis
我現在編輯它,它做的工作 - 需要將原始src添加到標記,以便它可以重置。還將其重構爲一些功能。 – Bat
偉大的工作,完美謝謝你的幫助! – HTMellis