jquery .slideToggle等到所有其他<li>关闭</li>

时间:2011-10-18 09:59:43

标签: php jquery

大家好我使用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;

1 个答案:

答案 0 :(得分:1)

您可以chain commands进行切换事件,其中一个初始链接链接是一个关闭所有其他切换项目的函数,一旦完成切换您正在选择的项目就会回调。

基本上是这样的:

将鼠标悬停在新的切换 - >运行功能上以关闭所有切换,传递当前所选切换元素的ID,并跳过关闭功能 - >使用回调函数打开当前所选其他所有其他切换时的切换< / p>

但是,我建议用户想要一个快速响应的界面,所以不必等待太长时间才能得到他们想要/期望的东西。我要么考虑缩短切换打开/关闭所需的时间,只需在悬停在新切换上时立即关闭所有其他切换,或者应用不同类型的导航效果。

此外,请参阅此处了解一些想法:

Jquery Close/Open Multiple Toggles

顺便提一下,您是否考虑过使用/重新定位accordian