大家好我使用php脚本从mysql数据库中提取产品的名称并将它们显示在列表中,每个列表都有4个子列表元素,通过jquery显示和隐藏(切换)。我的问题是,如果我将光标从产品移动到下一个,那么它会在另一个元素关闭之前开始打开产品<li>
元素。这样的效果是,如果我在列表上运行我的光标,它看起来像一个紧身:D
如何告诉jquery在运行新的切换之前等待所有其他切换完成?
while($info = mysql_fetch_array( $result ))
{
$str .="
<li id='mas".$info['name']."'><span>".$info['name']."</span>
<ul id='sub".$info['name']."' class='sub' style='display:none'>
<li><span>Scripts</span></li>
<li><span>Questions</span></li>
<li><span>Forum</span></li>
<li><span>Tips and Tricks</span></li>
</ul>
</li>
<script type='text/javascript'>
$('#mas".$info['name']."').hover(function () {
$('#sub".$info['name']."').slideToggle('slow');
});
</script>
";
}
echo $str;
答案 0 :(得分:1)
您可以chain commands进行切换事件,其中一个初始链接链接是一个关闭所有其他切换项目的函数,一旦完成切换您正在选择的项目就会回调。
基本上是这样的:
将鼠标悬停在新的切换 - >运行功能上以关闭所有切换,传递当前所选切换元素的ID,并跳过关闭功能 - >使用回调函数打开当前所选其他所有其他切换时的切换< / p>
但是,我建议用户想要一个快速响应的界面,所以不必等待太长时间才能得到他们想要/期望的东西。我要么考虑缩短切换打开/关闭所需的时间,只需在悬停在新切换上时立即关闭所有其他切换,或者应用不同类型的导航效果。
此外,请参阅此处了解一些想法:
Jquery Close/Open Multiple Toggles
顺便提一下,您是否考虑过使用/重新定位accordian?