Я довольно новичок во всем, что связано с javascript, и, похоже, я попал в рассол. Я создаю сайт, на котором отображается план расположения офиса. Когда страница загружается, я загружаю данные, полученные из базы данных, в функцию, проходящую через нее, и создает привязку для каждого человека.Вызов события щелчка динамически созданного элемента
Это мой метод:
function getDesks(coordsArr) {
for (var i = 0; i < coordsArr.length; i++) {
var element = $("<a href='' class='deskBtn' data-name='" + coordsArr[i].UserName + "'>.</a>");
$(element).css({
"top": coordsArr[i].DeskYCoord,
"left": coordsArr[i].DeskXCoord
}).appendTo(".map");
}
}
Проблема у меня в том, где поместить следующее событие Ajax щелчка.
$('.deskBtn').on('click', function() {
var user = $(this).attr("data-name");
console.log(user);
$.ajax({
url: "/Home/GetUserData",
type: "GET",
data: {user: user},
success: function (data) {
}
});
});
Я попытался поместить его после того, как цикл, но когда я нажимаю один из тегов привязки данных получают регистрируемые на экран, однако, быстро исчезает. Любые предложения были бы замечательными.
'.on()' * * должны быть присоединены к родительскому контейнеру, динамически добавляемых событий. Например: '$ (" # container "). On ('click', '.deskBtn', function() {});' –
Вы также можете создать элемент с событием: 'var $ el = $ (' ', {class:' deskBtn ', click: function() {}}) ' – elclanrs