问题与jquery切换

时间:2011-05-13 13:16:49

标签: jquery

我需要jquery的小帮助。

编辑:

    echo "<li> ";
        echo $navi_menu->navi_name;
         echo "<ul>";

和它的Jquery是,

<script type="text/javascript">
            $(document).ready(function () {
                $("#nav li:has(ul)").click(function (event) {
                    if (this == event.target) {
                        $(this).toggleClass('clicked').children('ul').slideToggle();
                        $(this).find('li:has(ul)').removeClass('clicked').find("ul").slideUp();
                        $(this).siblings().removeClass('clicked').find("ul").slideUp();
                    }
                }).addClass('has_ul');

            });
        </script>

用于向上和向下切换...现在我在我的html中添加了一个href标签,而不是打印naviname(echo $ navi_menu-&gt; navi_name; )直接,我想要一个链接。我需要帮助来重写jquery,以便在li标签出现的地方容纳一个href ....

   echo "<li> ";
        echo "<a class=\"click\" href=\"display_mod.php?navi_id=".$navi_menu->navi_id."\">$navi_menu->navi_name</a>";
           switch($navi_menu->navi_id) {
            case 1:
                echo "<ul>";

和它的jquery是,

<script type="text/javascript">
            $(document).ready(function () {
                $("#nav li:has(a.click):has(ul)").click(function (event) {
                    if (this == event.target) {
                        $(this).toggleClass('clicked').children('ul').slideToggle();
                        $(this).find('li:has(a.click):has(ul)').removeClass('clicked').find("ul").slideUp();
                        $(this).siblings().removeClass('clicked').find("ul").slideUp();
                    }
                }).addClass('has_ul');

            });
        </script>

使用修改后的jquery来容纳href标签不起作用。

这里li标签是parent,ul是child,链继续。

(部分代码来自cssplay。)

3 个答案:

答案 0 :(得分:1)

由于链接不是ul的父级或子级,因此您只想将其作为附加约束。只需添加另一个has()吗?

$("#nav li:has(ul):has(a.click)").click(function (event) {

如果您的意思是现在想要定位链接本身,那么只需使用空格而不是使用has方法。

$("#nav li:has(ul) a.click").click(function (event) {

如果这不是您要找的内容,则必须编辑您的问题以澄清。

答案 1 :(得分:1)

如果您要检查$('#nav li:has(a.click)')是否有li作为孩子的a类,则为click

答案 2 :(得分:0)

我认为这可能适合你。试一试。

$("#nav li:has(a.click, ul)").click(function (event) {
  //Your other statements here.
});