1

嗨,我有一个隐藏在屏幕侧面的导航菜单,可以切换不幸的是它不允许我点击里面的锚链接(它只是切换,我可以做些什么来覆盖防止默认值并获取锚标签工作?

var one = {queue:true, duration:1250, easing: 'easeInOutExpo'};
var two = {queue:true, duration:1500, easing: 'easeInOutExpo'};

$('nav').toggle(
function()  { showMenu() },
function()  { hideMenu() });

$(window).bind('load', function() {
setTimeout ( 'hideMenu()', 1000 );
});

function hideMenu()
{
$('nav').animate({ left: '-=270' },  one);
$('#container').animate({ left: '-=270' }, two);
}
function showMenu()
{
$('nav').animate({ left: '+=270' },  one);
$('#container').animate({ left: '+=270' }, two);
} 
4

2 回答 2

1

假设链接在nav元素内,并触发在该元素上设置的动画?

$('a', 'nav').on('click', function(e) {
    e.stopPropagation();
});

将停止点击锚点冒泡到nav元素。

于 2012-05-08T23:30:14.920 回答
0

要使锚点起作用,它必须提供一个非空href属性

.click()你阻止这样的默认行为

$('a.optional-class').click(function(e){
    e.preventDefault(); // it's way more powerful than...
    // your code goes here
    return false; // ... than this
});

问题是上述两种技巧(?)以不同的方式工作,1).preventDefault()只是告诉浏览器这个锚实际上不是一个锚,不应该被视为一个;阻止任何<a />操作 2)return false告诉浏览器用户实际上没有点击链接;这不会阻止滚动网站,如果

<a href="#some_id_here">
<!-- some code and height goes here... -->
<div id="some_id_here"></div>
于 2012-05-08T23:35:43.997 回答