JavaScript не работает в ASP .Net MVC Entity Framework - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь подключить кнопку к какому-либо API, используя метод click, но он не работает.JS на остальной части моего веб-сайта работает нормально, но мне это, похоже, не нравится .. PS Я новичок в asp .net и работаю с помощью учебного пособия, так что если что-то делается определенным образом, потому что это какэто сделано в учебнике.вот мой код страницы, которая создает проблему,

@model IEnumerable<GigHub.Models.Gig>
@{
    ViewBag.Title = "Home Page";
}

<ul class="gigs">
    @foreach(var gig in Model)
    {
        <li>
            <div class="date">
                <div class="month">
                    @gig.DateTime.ToString("MMM")
                </div>
                <div class="day" style="background:#f7f7f7;color:#333;font-size:20px;padding:6px 12px;">
                    @gig.DateTime.ToString("d ")
                </div>
            </div>
            <div class="details">
                <span class="artist">
                    @gig.Artist.Name
                </span>
                <span class="genre">
                    @gig.Genre.Name
                </span>
                <button data-gig-id="@gig.Id" class="btn btn-default btn-sm pull-right js-toggle-attendence">Going?</button>
            </div>
        </li>
    }
</ul>

@section scripts
{
    <script>
        $(document).ready(function () {
            $("js-toggle-attendence").click(function (event) {
                var button = $(event.target);
                $.post("/api/attendances", { gigId: button.attr("data-gig-id") }).done(function () {
                    button.removeClass("btn-default").addClass("btn-info").text("Going");
                }).fail(function () {
                    alert("Error Occured!");
                });
            });
        });
    </script>
}`

это div, который кажется проблемой

<div class="details">
                    <span class="artist">
                        @gig.Artist.Name
                    </span>
                    <span class="genre">
                        @gig.Genre.Name
                    </span>
                    <button data-gig-id="@gig.Id" class="btn btn-default btn-sm pull-right js-toggle-attendence">Going?</button>
                </div>

и это скрипт

@section scripts
    {
        <script>
            $(document).ready(function () {
                $("js-toggle-attendence").click(function (event) {
                    var button = $(event.target);
                    $.post("/api/attendances", { gigId: button.attr("data-gig-id") }).done(function () {
                        button.removeClass("btn-default").addClass("btn-info").text("Going");
                    }).fail(function () {
                        alert("Error Occured!");
                    });
                });
            });
        </script>
    }`

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Для jQuery, если вы хотите упомянуть класс, используйте нотацию.

Если вы хотите упомянуть elementID, используйте нотацию #

В вашем коде вы пропустили нотацию.в строке

$("js-toggle-attendence")

Чтобы исправить это, измените на

$(".js-toggle-attendence")
0 голосов
/ 15 марта 2019

есть "."отсутствует в селекторе JQuery для класса, оно должно быть:

$(".js-toggle-attendence").click(function (event) {

Вместо:

$("js-toggle-attendence").click(function (event) {
...