我目前正在学习使用 VS2013 制作 ASP.NET 应用程序,按照这些视频系列的逐步学习:
https://www.youtube.com/watch?v=aUx2Bdx68f4
视频使用VS2010显示
在其母版页中,当鼠标悬停在选项卡项上时,它使用以下 java 脚本显示子菜单框:
<script type="text/javascript" src="../JavaScript/jquery-1.11.3.min.js"></script>
<script type="text/javascript">
function mainmenu() {
$("#nav ul").css({ display: "none" }); //Opera fix
$("#nav li").hover(function () {
$(this).find('ul:first').css({ visibility: "visible", display: "none" }).show(400);
}, function () {
$(this).find('ul:first').css({ visibility: "hidden" });
});
}
$(document).ready(function () {
mainmenu();
});
</script>
显示如下,当鼠标悬停在“管理”标签项上时,会显示一个子菜单框。下面的示例显示了当我在 ~/Pages/About
页面时的情况:
到目前为止它没有问题,但是当我开始在名为“帐户”文件夹的解决方案的“页面”文件夹中的子文件夹中创建网络表单时(如下图所示):
然后鼠标悬停以显示子菜单框不再有效,但仅在我的“帐户”子文件夹中的页面上有效。下面的例子是当我在我的 ~/Pages/Account/Login
页面时:
我为 ~/Pages/About
和 ~/Pages/Account/Login
页面使用相同的母版页,在视频中(使用 VS2010),它工作正常。但它在我的应用程序中不起作用。谁能解释一下为什么会这样?
最佳答案
感谢 Suprabhat Biswal 先生,我从他那里得到了这个答案(请参阅聊天)。
问题是因为在母版页的 javascript 中,我放了
<script type="text/javascript" src="../JavaScript/jquery-1.11.3.min.js"></script>
代替
<script type="text/javascript" src="<%=GetBaseURL%>/JavaScript/jquery-1.11.3.min.js"></script>
第一个使 jquery 始终相对于我当前页面的路径执行。在我的例子中,这使得打开 Login
页面时引用的 jquery 位于 localhost:64631/Pages/JavaScript/jquery-1.11.3.min.js
(错误) 而不是 localhost:64631/JavaScript/jquery-1.11.3.min.js
(正确)
为了解决这个问题,他建议我在我的 web.config 中添加一个名为 BaseURL
的键,并创建名为 GetBaseURL
的 C# 方法,该方法返回要使用的键值在 java 脚本(第二个脚本)中。现在它工作得很好! :)
关于javascript - JS .hover 可见性不起作用(ASP.NET、VS2013、Web 表单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34282060/