我有一个带滚动插件的简单标签脚本,当我点击每个标签时,该标签的滚动将被激活,但是有一个问题,因为如果你在每个标签上点击两次,你将有两个实例在您的页面上滚动!这是我的代码,任何想法?
P.S我使用的是mCustomScrollbar插件。
(function($){
$(window).load(function(){
$('ul.tabs').each(function(){
var $active, $content, $links = $(this).find('a');
$active = $($links.filter('[href="' + location.hash + '"]')[0] || $links[0]);
$active.addClass('active');
$content = $($active.attr('href'));
$links.not($active).each(function() {
$($(this).attr('href')).hide();
});
// Set scrollbar to main item
$('#mContent').mCustomScrollbar();
// Bind the click event handler
$(this).on('click', 'a', function(e)
{
var $currentScroll = null, $currentTab = $(this).attr('href');
switch ($currentTab)
{
case '#tabs-contentDescription':
$currentScroll = '#mContent';
break;
case '#tabs-contentChangelog':
$currentScroll = '#mChangelog';
break;
case '#tabs-contentPermission':
$currentScroll = '#mPermission';
break;
}
console.log('Current tab is: ' + $currentTab + ' And current scroll div is :' + $currentScroll);
// Make the old tab inactive.
$active.removeClass('active');
$content.hide();
// Update the variables with the new link and content
$active = $(this);
$content = $($(this).attr('href'));
// Make the tab active.
$active.addClass('active');
$content.show();
$($currentScroll).mCustomScrollbar();
e.preventDefault();
});
});
});
}) (jQuery);
答案 0 :(得分:1)
我在评论中提出的一个明确的例子:
var active;
(function($){
$(window).load(function(){
[...]
if(active) $(active).delete();
active = $active = $(this);
[...]
)}) (jQuery);