我有一个下拉菜单,我希望用户能够通过。我在一个相当好的地方有这个功能,一旦用户用tabs键进入元素,菜单就会向下滑动,而当用户用tabs键拉出时,菜单就会向上滑动。唯一的问题是,每当用户在菜单中用tabs键切换到新链接时,都会点击focus:。所以体验是相当的。弹力十足。
在用户跳出活动区域之前,我如何防止事件冒泡?谢谢!
$('#block-pagestyle-form')
.live({
focus:function (){
$('#pagestyle_current_list').slideDown(250)
},
blur: function (){
$('#pagestyle_current_list').slideUp(250)
}
});编辑:很抱歉!我正在处理的html是:
<div id="block-pagestyle-form">
<h1><a href="">Menu Title</a></h1>
<ul id="pagestyle_current_list">
<li><a href="">Menu Item</a></li>
<li><a href="">Menu Item</a></li>
<li><a href="">Menu Item</a></li>
</ul>
</div>用户需要能够在h1标记上使用tab键,从而触发.slideDown,并且当用户使用tab键离开div时,菜单需要向上滑动。现在的代码每次将菜单中的锚点切换到时都会运行.slideDown()。
发布于 2011-06-16 02:18:21
我不确定我是否正确理解了您的问题,但您可以使用stop方法停止之前的任何动画:
$('#block-pagestyle-form')
.live({
focus:function (){
$('#pagestyle_current_list').stop(true, true).slideDown(250)
},
blur: function (){
$('#pagestyle_current_list').slideUp(250)
}
});https://stackoverflow.com/questions/6362256
复制相似问题