2015-12-15 30 views
3

我目前正在学习使用VS2013使ASP.NET应用程序,遵循循序渐进,从这些视频系列学习:JS .hover知名度不工作(ASP.NET,VS2013,网页形式)

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页:

enter image description here

到目前为止,这没有问题,但是当我开始创建我的“页面”文件夹中的子文件夹中的WebForms该解决方案被称为“户口”文件夹中(如下图所示):

enter image description here

然后将鼠标悬停显示子菜单框不再工作,但仅限于在我的“账户页面“子文件夹。下面的例子是,当我在我的~/Pages/Account/Login页:

enter image description here

我使用相同的母版同时为~/Pages/About~/Pages/Account/Login页面,并在视频(使用VS2010),它工作正常。但它不适用于我的应用程序。任何人都可以解释为什么是这样?

+1

您的脚本路径存在问题。改变你的'src'到'〜/ JavaScript/jquery-1.11.3.min.js' – Prabhat

+0

@SuprabhatBiswal我试过了,情况变得更糟。现在,我无法在我的关于页面和我的帐户/登录页面看到子菜单:( – Ian

+0

好吧,回到之前完成的操作,然后打开同一个页面'登录'。在开发者控制台中,检查是否有任何jQuery的错误 – Prabhat

回答

1

感谢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页面时要在localhost:64631/Pages/JavaScript/jquery-1.11.3.min.js(错误)jQuery的简称,而不是localhost:64631/JavaScript/jquery-1.11.3.min.js(正确)

为了解决这个问题,他建议我加入一个名为在我的web.config BaseURL键创建名为GetBaseURL的C#方法,该方法返回它们在java脚本(第二个脚本)中使用的键值。现在它工作得很好! :)