从这些视频系列中逐步学习之后,我目前正在学习使用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
页面中的情况:到目前为止,这没有问题,但是当我开始在名为“Account”文件夹的解决方案的“Pages”文件夹中的子文件夹中创建Web窗体时(如下图所示):
然后,将鼠标悬停以显示子菜单框不再起作用,而仅在我的“帐户”子文件夹中的页面上起作用。下面的示例是当我在
~/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/