我有一个使用 jQuery 的选项卡面板,一切正常,除了选项卡内容内的 data-anchor
链接应该切换到特定选项卡。标签页切换正常,但标签页内容不显示。
如何解决这个问题?
HTML:
<div class="tab-panels">
<ul class="tabs">
<li class="active" rel="panel1">panel1</li>
<li rel="panel2" id="custpanel2">panel2</li>
<li rel="panel3">panel3</li>
<li rel="panel4">panel4</li>
</ul>
<div class="panel active" id="panel1">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
<div class="panel" id="panel2">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
<div class="panel" id="panel3">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</div>
<div class="panel" id="panel4">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<a href="custpanel2" data-anchor="#custpanel2">
Click here
</a>
</div>
</div>
JS:
$('.tab-panels .tabs li').on('click', function(){
var $panel = $(this).closest('.tab-panels');
$panel.find('.tabs li.active').removeClass('active');
$(this).addClass('active');
var panelToShow = $(this).attr('rel');
$panel.find('.panel.active').fadeOut(300, showNextPanel);
function showNextPanel(){
$(this).removeClass('active');
$('#'+panelToShow).fadeIn(300, function(){
$(this).addClass('active');
})
}
});
//Link inside tab content
$('[data-anchor="#custpanel2"]').on('click', function(e){
e.preventDefault();
var $panel = $(this).closest('.tab-panels');
$panel.find('.tabs li.active').removeClass('active');
$('.tabs li:nth-child(3)').addClass('active');
var panelToShow = $(this).attr('rel');
$panel.find('.panel.active').fadeOut(300, showNextPanel);
function showNextPanel(){
$(this).removeClass('active');
$('#'+panelToShow).fadeIn(300, function(){
$(this).addClass('active');
})
}
});
最佳答案
var panelToShow = $(this).attr('rel');
panelToShow 的值是从名为“rel”的属性中检索的,并且该链接没有“rel”属性,您可以在不修改逻辑的情况下解决问题
例如
rel="panel1"
关于javascript - 如何使用 jQuery 在单击特定链接时切换到特定选项卡面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53495846/