我是新手,目前有一个问题,下面的代码不适用于Firefox。
我正在尝试使用e.preventDefault()
来阻止锚定默认值。我也尝试了return false
,但似乎仍然默认了锚位置。
有什么想法吗?这是我的代码:
<script type="text/javascript">
...
// tabs
$('ul.tabNav').each(function(){
var $active, $content, $links = $(this).find('a');
$active = $links.first().addClass('active');
$content = $($active.attr('href'));
$links.not(':first').each(function () {
$($(this).attr('href')).hide();
});
$(this).on('click', 'a', function(e){
// 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();
// Prevent the anchor's default click action
e.preventDefault();
});
});
});
</script>
答案 0 :(得分:1)
我会先放e.preventDefault();
所以无论如何都会调用它。
没有看到你的标记,我无法确定,但我的猜测是$($(this).attr('href'));
抛出了一个错误,停止了执行,因此永远不会进入e.preventDefault();
。
$(this).on('click', 'a', function (e)
{
// Prevent the anchor's default click action
e.preventDefault();
// 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')); // <-- is probably erroring here.
// Make the tab active.
$active.addClass('active');
$content.show();
});