+ -
当前位置:首页 → 问答吧 → 请教一个关于jQuery弹出菜单的问题

请教一个关于jQuery弹出菜单的问题

时间:2010-03-24

来源:互联网

我写了如下jquery代码
$(document).ready(function() {
    $(".father").hover(function() {
        $(this).children("ul").show(100);
    }, function() {
        $(this).children("ul").hide(100);
    });
})
html部分如下 菜单是由asp.net生成 由于不想嵌套repeater 所以子节点我自己做了一方法用代码生成
<asp:Repeater ID="RMenu" runat="server">
          <HeaderTemplate>
            <ul id="menu">
              <li class="father-left"><a href="index.aspx">首页</a></li>
          </HeaderTemplate>
          <ItemTemplate>
             <li class="father"><a href="#"><%#DataBinder.Eval(Container.DataItem,"class_name") %></a>
               <%#GetChildNode(DataBinder.Eval(Container.DataItem,"class_id")) %>
             </li>
          </ItemTemplate>
          <FooterTemplate>
            </ul>
          </FooterTemplate>
        </asp:Repeater>
一下是生成子节点的代码
public string GetChildNode(object sender)
    {
        int FatherClassId = Convert.ToInt32(sender);
        string ChildNodeCode;
        ChildNodeCode = "<ul>";
        using (SqlConnection mydatacon = new SqlConnection(constr))
        {
            mydatacon.Open();
            using (SqlCommand mycmd = new SqlCommand("select * from class where class_belongto=@id", mydatacon))
            {
                mycmd.Parameters.AddWithValue("@id", FatherClassId);
                using (SqlDataReader mysdr = mycmd.ExecuteReader())
                {
                    if (mysdr.HasRows)
                    {
                        while (mysdr.Read())
                        {
                            ChildNodeCode += "<li><a href=\"#\">";
                            ChildNodeCode += mysdr["class_name"].ToString();
                            ChildNodeCode += "</a></li>";
                        }
                        ChildNodeCode += "<li class=\"bottom\"></li>";
                        ChildNodeCode += "</ul>";
                    }
                    else
                    {
                        ChildNodeCode += "</ul>";
                    }
                }
            }
            mydatacon.Close();
        }
        return ChildNodeCode.Trim();
    }
做完这些后 发现鼠标移出主菜单移入子菜单后仍然会造成子菜单隐藏 而我写的代码我和我看的教程上的是完全没有出入的 不知道这是为什么 求高人解答! 顺便说下我的jQuery用的是1.4版本

作者: xboxeer   发布时间: 2010-03-24