问题描述
我有此脚本可用于解决Twitter Bootstrap中不更改活动<li>
选项卡颜色的问题。
我正在使用网络表格。
<script type="text/javascript">
$(document).ready(function () {
var url = window.location.pathname;
var substr = url.split('/');
var urlaspx = substr[substr.length - 1];
$('.nav').find('.active').removeClass('active');
$('.nav li a').each(function () {
if (this.href.indexOf(urlaspx) >= 0) {
$(this).parent().addClass('active');
}
});
});
</script>
现在,我对javascript和asp.net都是陌生的。 因此,这可能是一个不好的问题,我事先表示歉意,但我想知道合适的位置。
我最初将其放置在Site.Master页面的<head>
标记中。
但这没有用。
另外,当我将其添加到主体中称为custom.js的文件中时,我创建的该文件也不起作用。
因此,我只是将脚本本身添加到了正文中,这是可行的,但有一点告诉我这不是“最佳实践”方法,而是希望有更多经验的人可以告诉我应该去哪里以及为什么。
这是Master.Site页面和我尝试过的位置的副本。
<html lang="en">
<head runat="server">
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><%: Page.Title %> - My ASP.NET Application</title>
<asp:PlaceHolder runat="server">
<%: Scripts.Render("~/bundles/modernizr") %>
</asp:PlaceHolder>
<webopt:BundleReference runat="server" Path="~/Content/css" />
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<link href="~/Content/custom.css" rel="stylesheet" type="text/css" /> <%--Custom CSS created for site--%>
</head>
<body>
<form runat="server">
<asp:ScriptManager ID="ScriptManager" runat="server">
<Scripts>
<%--To learn more about bundling scripts in ScriptManager see http://go.microsoft.com/fwlink/?LinkID=301884 --%>
<%--Framework Scripts--%>
<asp:ScriptReference Name="MsAjaxBundle" />
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="bootstrap" />
<asp:ScriptReference Name="respond" />
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
<asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
<asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
<asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
<asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
<asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />
<asp:ScriptReference Name="WebFormsBundle" />
</Scripts>
</asp:ScriptManager>
<%--Custom JS created for site--%>
<script src="Scripts/custom.js" type="text/javascript"></script>
<%-- This does nt work inside the custom.js --%>
<script type="text/javascript">
$(document).ready(function () {
var url = window.location.pathname;
var substr = url.split('/');
var urlaspx = substr[substr.length - 1];
$('.nav').find('.active').removeClass('active');
$('.nav li a').each(function () {
if (this.href.indexOf(urlaspx) >= 0) {
$(this).parent().addClass('active');
}
});
});
</script>
1楼
您是否尝试过制作一个js文件,将其命名为“ MyScript.js”,并将其保存在服务器上的“脚本”文件夹中。 然后将其添加到您的母版页:
<%--Custom JS created for site--%>
<script src="Scripts/custom.js" type="text/javascript"></script>
<script src="Scripts/MyScript.js" type="text/javascript"></script><%-- <<< NEW --%>
???