ASP.NET JQuery - исключение jQuery.Deferred: $ не является функцией

Я не так разбираюсь в JQuery, так что, возможно, это глупая ошибка. Тем не менее, это время подтачивало меня, и ничего не работает.

На моем веб-сайте (ASP.NET Webforms), похоже, нет скриптов JQuery от сторонних разработчиков. В частности, я пытаюсь сделать работу Совы Каруселей .

Так вот как я загружаю скрипты и css в Head (In MasterPage):

<link href="../Content/style.css" rel="stylesheet" />
<link href="../Content/social.css" rel="stylesheet" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="<%= Page.ResolveClientUrl("~/Content/js/owl.carousel.min.js") %>"></script>

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
<link href="<%= Page.ResolveClientUrl("~/Content/owl.carousel.min.css") %>" rel="stylesheet" />
<link href="<%= Page.ResolveClientUrl("~/Content/owl.theme.default.min.css") %>" rel="stylesheet" />


<asp:PlaceHolder runat="server">
    <%: Scripts.Render("~/bundles/modernizr") %>
</asp:PlaceHolder>

<link href="../img/icons/favicon/favicon.ico" rel="shortcut icon" type="image/x-icon" />

Я обязательно загрузил Jquery, а затем любые другие плагины. Это мой HTML (на странице «Содержание»):

<div class="owl-carousel">
    <div> Your Content </div>
    <div> Your Content </div>
    <div> Your Content </div>
    <div> Your Content </div>
    <div> Your Content </div>
    <div> Your Content </div>
    <div> Your Content </div>
</div>

<script type="text/javascript">
    $(document).ready(function () {
        console.log("in");
        $(".owl-carousel").owlCarousel();
    });
</script>

Что бы я ни делал, я получаю эту ошибку:

Ошибка JQuery

Я много искал для него, все еще не повезло. Я пробовал много плагинов и всегда заканчивал ту же ошибку.

javascript,jquery,html,asp.net,

0

Ответов: 2


1

Я думаю, вы указываете неправильный путь к owlCarousel

Вы должны пересмотреть:

ResolveUrl создает относительный URL-адрес для корня.

ResolveClientUrl создает относительный URL-адрес текущей страницы.

Я думаю, вы должны использовать ResolveUrl вместо ResolveClientUrl, чтобы получить правильный путь.

Код будет выглядеть так:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="<%= Page.ResolveUrl("~/Content/js/owl.carousel.min.js") %>"></script>

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
<link href="<%= Page.ResolveUrl("~/Content/owl.carousel.min.css") %>" rel="stylesheet" />
<link href="<%= Page.ResolveUrl("~/Content/owl.theme.default.min.css") %>" rel="stylesheet" />

0 принят

Если люди с той же проблемой сталкиваются с этим:

Таким образом, проблема, заявленная freedomn-m, заключалась в том, что JQuery загружался дважды. На веб-сайте ASP.NET был сценарист, который ссылался на JQuery (загруженный из NuGet по умолчанию), без меня.

<asp:ScriptManager runat="server">
        <Scripts>
            <%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%>
            <%--Framework Scripts--%>
            <asp:ScriptReference Name="MsAjaxBundle" />
            <%--<asp:ScriptReference Name="jquery" />--%>
            <asp:ScriptReference Name="bootstrap" />
            <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" />
            <%--Site Scripts--%>
        </Scripts>
</asp:ScriptManager>

Я просто прокомментировал ссылку JQuery, и все работало, как ожидалось.

JavaScript, JQuery, HTML, asp.net,
Похожие вопросы