0

我有一个使用 asp.net 菜单控件创建的菜单。我添加了 JQuery 脚本,将显示从弹出显示更改为展开手风琴风格。但是弹出仍然出现,所以总体上发生的是“鼠标悬停菜单->出现子菜单->子菜单回滚”

我正在寻找的是一种禁用 asp.net 生成的 javascript 的方法,它会导致子菜单出现在鼠标悬停时,以便我拥有的替换脚本可以独立运行。

在与此问题类似的其他答案中,我发现以下内容:

public class MyCustomMenu : System.Web.UI.WebControls.Menu
{
    protected override void OnPreRender(EventArgs e)
    {
        // Don't call base OnPreRender
        //base.OnPreRender(e);
    }
}

但是,将其添加到我的 masterpage.cs 文件并没有解决问题。

4

2 回答 2

1

如果您查看菜单控件呈现的 HTML,您会看到每个菜单元素在鼠标悬停时都有一个函数调用,称为 Menu_HoverStatic。要禁用它,只需在 ASPX 标记中包含一个同名的空函数:

<script type="text/javascript">
   Menu_HoverStatic = function () { };
</script>

这将有效地禁用原始鼠标悬停。使用此方法,您可以在需要时禁用其他原始事件处理程序。

于 2012-06-20T20:27:51.920 回答
0

不是每个人都熟悉的一件事是使用控件适配器来自定义标准控件的呈现方式。

使用适配器,您可以例如将菜单的输出更改为干净的<ul>元素<li>,将其与 jquery 集成等。

这是在菜单上使用ASP.NET 2.0 CSS 友好控制适配器的示例:http ://www.asp.net/cssadapters/WalkThru/WalkThrough.aspx#SimpleMenu

于 2012-06-20T20:43:59.733 回答