#javascript #asp.net-mvc #dom-events
#javascript #asp.net-mvc #dom-события
Вопрос:
Я пытаюсь подключить кнопку с помощью некоторого API, используя метод click, но он не работает. JS на остальной части моего веб-сайта работает нормально, но, похоже, мне это не нравится .. P.S Я новичок в 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>
}`
Комментарии:
1. Видите ли вы какие-либо ошибки в консоли? Включен ли javascript в представление?
2. у меня были ошибки вроде libhelp.js не найден, и я добавил эти недостающие ссылки, но все еще не работает
Ответ №1:
В вашем селекторе jQuery для класса отсутствует «.», он должен быть:
$(".js-toggle-attendence").click(function (event) {
Вместо:
$("js-toggle-attendence").click(function (event) {
Комментарии:
1. Круто, вы можете установить мой ответ как правильный? Спасибо
Ответ №2:
Для jQuery, если вы хотите упомянуть класс, используйте обозначения .
Если вы хотите указать идентификатор элемента, используйте обозначение #
В вашем коде вы пропустили обозначения. в строке
$("js-toggle-attendence")
Чтобы исправить это, измените на
$(".js-toggle-attendence")