Javascript 以下<;a>;用鼠标点击链接,而不是用鼠标点击链接
我使用下面的代码使浏览器在鼠标按下时跟随链接,而不是在鼠标向上时(像普通的单击) 首先,这是一种良好的做法吗?GMail做到了这一点,它的效果是页面加载速度比实际速度快Javascript 以下<;a>;用鼠标点击链接,而不是用鼠标点击链接,javascript,jquery,html,Javascript,Jquery,Html,我使用下面的代码使浏览器在鼠标按下时跟随链接,而不是在鼠标向上时(像普通的单击) 首先,这是一种良好的做法吗?GMail做到了这一点,它的效果是页面加载速度比实际速度快 还有,有没有更好的方法?我还没有在所有浏览器中测试过这个功能,所以我不确定它是否在较旧的浏览器中工作。Internet Explorer 5.5版或更早版本不支持mousedown功能。jQuery将特定于浏览器的事件捕获行为规范化为mousedown函数 至于良好实践与否,我认为以这种方式处理鼠标单击事件不会带来明显的性能好处
还有,有没有更好的方法?我还没有在所有浏览器中测试过这个功能,所以我不确定它是否在较旧的浏览器中工作。Internet Explorer 5.5版或更早版本不支持
mousedown
功能。jQuery将特定于浏览器的事件捕获行为规范化为mousedown
函数
至于良好实践与否,我认为以这种方式处理鼠标单击事件不会带来明显的性能好处。因此,除非你有具体的理由这样做,否则我将遵循标准惯例。鼠标按下时唯一应该发生的事情是向用户显示鼠标按钮确实按下的任何必要效果 在鼠标向上之前不执行任何操作的原因至少可以追溯到原始Macintosh的Apple人机界面指南:这为用户提供了在放开鼠标之前将鼠标从按钮上移开以“取消”单击的选项
用鼠标按下操作会给用户一种感觉,你的程序正在把地毯,呃,对话框从下面拉出来。Re:良好做法:我会坚决地说不。你正在改变(某些)用户的期望。这比毫秒的延迟更有害。链接可以被拖动、右键单击等。如果没有很好的理由,绝对不会改变行为。Gmail就是这样工作的,因为你不能通过电子邮件做任何其他事情。对于大多数链接,不要费心了。@adam:点击Gmail中的任何消息。我想说,当你增加
a
的数量时,它会过度破坏性能,因为jQuery。每个()方法本身就是一个缓慢的迭代方法,因为它必须扫描整个DOM树。你可以获得大约50毫秒
$('#links a').each(function(){
$(this).mousedown(function(){
window.location.href=$(this).attr('href');
});
});