Javascript web表单在使用母版页时不调用jquery库,但在没有母版页的情况下工作

Javascript web表单在使用母版页时不调用jquery库,但在没有母版页的情况下工作,javascript,jquery,html,asp.net,Javascript,Jquery,Html,Asp.net,我试图使用名为“selected”的jquery库来进行下拉列表,并列出更好的列表。 以下是选择的jquery库: 如果我只是创建一个包含以下内容的web表单: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="AssetTracker.Chosen.WebForm1" %> <!DOCTYPE html> <html xmlns="http:/

我试图使用名为“selected”的jquery库来进行下拉列表,并列出更好的列表。 以下是选择的jquery库:

如果我只是创建一个包含以下内容的web表单:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="AssetTracker.Chosen.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">  
  <script language="Javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="../chosen.jquery.js" type="text/javascript"></script>
  <script src="docsupport/prism.js" type="text/javascript" charset="utf-8"></script>
  <link href="/Content/Site.css" rel="stylesheet" />
  <link rel="stylesheet" href="/Chosen/chosen.css" />
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/cupertino/jquery-ui.css" />
  <script type="text/javascript">
      $(document).ready(function() {
          $("#DropDownList1").chosen();
      });
  </script>
  <title>test</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DropDownList CssClass="chosen-single" ID="DropDownList1" runat="server" data-placeholder="Choose one...">
            <asp:ListItem>USA</asp:ListItem>
            <asp:ListItem>Russia</asp:ListItem>
            <asp:ListItem>Poland</asp:ListItem>
        </asp:DropDownList>
    </div>
    </form>
</body>
</html>
同一个解决方案、同一个项目,但控制台中有母版页的那个给了我一个错误:

uncaughttypeerror:Object[Object Object]没有“选择”方法。

我知道一般来说,这个错误是因为找不到脚本文件…但正如我所说的,这是同一个位置,同一个解决方案,同一个项目…但就我而言,我无法让它工作

如果有人需要,这里是母版页:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="AssetTracker.SiteMaster" %>

<!DOCTYPE html>
<html lang="en">
<head runat="server">
    <meta charset="utf-8" />
    <title>Asset Tracker</title>
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <meta name="viewport" content="width=device-width" />
    <asp:ContentPlaceHolder runat="server" ID="HeadContent" />
</head>
<body>
    <form runat="server">
    <asp:ScriptManager runat="server">
        <Scripts>
            <%--Framework Scripts--%>
            <asp:ScriptReference Name="jquery" />
            <asp:ScriptReference Name="jquery.ui.combined" />
            <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" />
            <%--Site Scripts--%>

        </Scripts>
    </asp:ScriptManager>
    <header>
        <div class="content-wrapper">
            <div class="float-left">
            </div>
            <div class="float-right">
                <section id="login">
                    <asp:LoginView runat="server" ViewStateMode="Disabled">

                        <LoggedInTemplate>
                            <p>
                                Hello, <a runat="server" class="username" href="#" title="">
                                    <asp:LoginName runat="server" CssClass="username" />
                                       </a>
                            </p>
                        </LoggedInTemplate>
                    </asp:LoginView>
                </section>
                <nav>
                    <ul id="menu">
                        <li><a runat="server" href="~/">Home</a></li>
                    </ul>
                </nav>
            </div>
        </div>
    </header>
    <div id="body">
        <section class="content-wrapper main-content clear-fix">
            <asp:ContentPlaceHolder ID="MainMessageContent" runat="server"/>
            <asp:ContentPlaceHolder ID="ButtonContent" runat="server"/>
            <asp:ContentPlaceHolder runat="server" ID="MainContent" />
        </section>
    </div>
    <footer>
        <div class="content-wrapper">
            <div class="float-left">
                <p>&copy; <%: DateTime.Now.Year %></p>
            </div>
        </div>
    </footer>
    </form>
</body>
</html>

资产追踪器

&抄袭


这与jquery库之间的冲突有关,但我不理解
Site.master
Site母版页是否足以理解为什么会发生这种情况。有人能告诉我哪里出错了吗?

问题是您有一个指向“所选”javascript文件的相对路径

如果在任何特定页面上显示的页面的URL没有相同的路径,则指向“所选”文件的部分路径将不正确


如果您为脚本使用完全指定的URL,可能会发生这种情况。

首先确保已加载javascript,然后。。。 问题是因为您使用的是母版页,它会更改页面上元素的客户端id

所以你可以用这个例子

<asp:Content ID="Content4" ContentPlaceHolderID="MainContent" ClientIDMode="Static" runat="server">

在使用母版页时,我多次遇到过这种情况。 首先,我认为应该从母版页中删除对Jquery库的任何引用。
请记住,当您多次加载Jquery库时,它会停止工作。因此,如果您使用这个
,您将再次在内部调用Jquery库,因此请从母版页中删除它。我们的目标是只调用Jquery库一次,以避免此常见错误
uncaughttypeerror:Object[Object Object]没有方法“xxxxx”
。希望有此帮助。

您的内容页和母版页都包含jquery。尝试删除一个,这样jquery只被引用一次。哇,你是对的,太简单了。。。。
<asp:Content ID="Content4" ContentPlaceHolderID="MainContent" ClientIDMode="Static" runat="server">