【问题标题】:slideToggle not working for meslideToggle 不适合我
【发布时间】:2013-05-03 14:43:41
【问题描述】:

我正在尝试制作一个左侧导航,当您单击其中一个链接时,该导航会随着子类别向下滑动。

我只对顶部链接有效,但其他链接无效。

在我的头文件中,我有一些这样的 jquery 脚本:

<script> 
$(document).ready(function(){
  $("#flip").click(function(){
    $("#panel").slideToggle("slow");
  });
});
</script>

在我的 HTML/PHP 中,我有以下代码:

    <div id="left-prod-nav">
        <ul>
            <li class="top">Product Categories</li>
            <?for($i = 0; $i < $count; $i++) 
            {?> 
            <div id="flip"><li><img src="images/arrowright_off.gif" style="padding:0px; margin:0px;float:right;"><a href="#"><?=$result[$i]['categoryName']?></a></li> </div>
            <div id="panel">Hello world!</div>
            <?}?>
        </ul>
        <div class="clear">&nbsp;</div>
    </div>

所以导航就在那里......当我点击最上面的一个时,其他的会向下滑动,这样你就可以看到我点击的那个的子类别。

但是,如果我单击其他任何一个,都不会发生任何事情。

以前有没有人遇到过这个问题或知道如何查看我的代码来解决它?

谢谢

【问题讨论】:

  • ID 应该是唯一的...您的循环将附加多个具有匹配 ID 的 div
  • 请发布呈现的 HTML,而不是 PHP。
  • 好的,我如何将唯一 ID 传递到 jquery 中?
  • 您也可以只为两个 div 使用一个类,然后执行 $(this).next('.panel') - 否则您将手动将每个唯一 ID 写入

标签: php jquery html slidetoggle


【解决方案1】:

我可以假设你正在尝试完成这样的事情:http://jsfiddle.net/QQRy8/

$(".flip").click(function(){
    $(this).next(".panel").slideToggle("slow");
});

我改变了你的 jQuery 以使用类,你应该改变你的 PHP 给每个 div 一个类名而不是一个 ID(ID 必须是唯一的!)

此答案基于此 HTML:

<div class="flip">
    <li>
        <a href="#">cool</a>
    </li> 
</div>

<div class="panel" style="display: none;">Hello world!</div>

【讨论】:

  • 这正是我想要做的。我使用了您的示例,但现在所有面板都立即显示,单击链接只会隐藏它们,再次单击它们甚至不会重新显示它们......这是我的新 jquery 代码......"
    世界你好!
    "
  • 没关系...它现在完成只是对 CSS 的调整...感谢您的回答,它完美运行
  • 猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 2011-08-11
    • 2011-01-05
    • 2011-12-23
    • 2012-04-01
    • 2011-05-02
    相关资源
    最近更新 更多