jQuery не доступен в ASP.NET Core 2.2 Razor view - PullRequest
0 голосов
/ 28 января 2019

Я создал простое веб-приложение ASP .Net Core (версия 2.2) (не MVC) в сообществе Visual Studio 2017 (версия 15.9.6)

По умолчанию jQuery (версия 3.3.1)включен в каталог wwwroot / lib / jquery.

Я получаю jQuery IntelliSense.

Ссылка на jQuery указана в файле по умолчанию /Pages/Shared_Layout.cshtml.

Я добавил следующий код на страницу default.csthml:

<script type="text/javascript">
     $(document).ready(function () {
         $("p").click(function () {
             $(this).hide();
         });
     });
</script>

<p>If you click on me, I will disappear.</p>
<p>Click me away!</p>
<p>Click me too!</p>

Этот простой код по умолчанию не работает.

Я не понимаю, почему.

Ошибка консоли

0x800a1391 - JavaScript runtime error: '$' is undefined

Разметка

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>@ViewData["Title"] - jQueryTest2</title> 
    <link rel="stylesheet" href="~/css/site.css" /> 
</head> 
<body> 
    <header></header> 
    <div class="container"> 
        <main role="main"> @RenderBody() </main> 
    </div> 
    <footer></footer> 
    <environment exclude="Development"> 
        <script src="cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/>
    </environment>
</body> 
</html> 

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Сначала добавьте @RenderSection("Scripts", required: false) внизу body вашей Layout.cshtml страницы.

Затем ваши сценарии внутри @section Scripts выглядят следующим образом:

@section Scripts{
    <script type="text/javascript">
       $(document).ready(function () {
           $("p").click(function () {
             $(this).hide();
           });
       });
    </script>
}

Надеюсь, эторешит вашу проблему!

0 голосов
/ 28 января 2019

На основании вашего комментария мы видим, что jQuery фактически не загружен к моменту запуска этого элемента скрипта.Обычно вам нужно загрузить jQuery в элемент head, чтобы убедиться, что он доступен для script элементов, определенных в body.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...