Есть такой код на станице HTML (применяется Razor):
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.PetName)
</td>
<td>
<a href="#" id="linkCarInfo" data-num=@item.Id>Описание</a>
</td>
</tr>
}
, генерируются ссылки для описания авто, которое должно выводиться на странице ниже в отдельном блоке div:
<div id="carInfo"></div>
.
Для получения описания авто необходимо вызвать скрипт что-то вроде этого:
$(document).ready(function () {
$("#linkCarInfo").click(function () {
var id = $(this).data("num");
Car.getCarInfo(id);
});
});
Car = {
getCarInfo: function (id) {
$.ajax({
dataType: "Json",
contentType: "application/json; charset=utf-8",
asynch: false,
url: "/Home/CarInfo/" + id,
success: function (output, status, xhr) {
var car = eval(output);
Car.viewCarInfo(car);
},
error: function (error) {
alert("Error: " + error);
}
});
},
viewCarInfo: function (car) {
var result = "Модель: " + car.model + "<br/>";
result += "Максимальная скорость: " + car.maxSpeed + "<br/>";
result += "Разгон до 100 км/ч за" + car.acceleration + " сек<br/>";
document.getElementById("carInfo").innerHTML = result;
}
}
В итоге работает только при нажатии на первую ссылку. При нажатии на последующие ноль реакции. Изучаю ASP.net MVC и по JQuery знаний пока мало (как и по JS)
.
Сам(и) вопрос(ы):
Как правильно делать обработку таких ссылок или как их генерировать, чтоб потом под один обработчик запихнуть и считывать там только ID. Конечно интересно решение ненавязчивого JS, без подвески аттрибута onclick или вызова функции JS в ссылке.