Я пытаюсь получить доступ к пользовательскому атрибуту HTML из функции, прикрепленной к прослушивателю событий, но до сих пор не смог заставить его работать. Я не уверен, как правильно ссылаться на целевой элемент.Доступ к атрибутам HTML внутри функции прослушивателя
В настоящее время у меня есть:
<td id= "kayak1" data-picid="1"><img src= "thumbnail.jpg"></td>
Слушатель:
var cat1 = document.getElementById("kayak1");
cat1.addEventListener("dblclick", showCatPix);
И моя функция:
function showCatPix() {
var picSelect = this.getAttribute("data-picid");
switch(picSelect) {
case 1:
var catPix = document.getElementById("showCatPics");
catPix.src ="cat_kayak.jpg";
break;
}
}
Событие правильно вызвать функцию, но showCatPix не имеет доступа к picid и ничего не отображается. Я также попытался использовать this.dataset.picid. Но это тоже не сработало. Любые советы о том, как правильно ссылаться на свойство, будут отличными.
'Функция showCatPix()' 'изменение функции showCatPix (е)' и 'e.target.dataset.picid' и Mew в праздник. – jdphenix
Где идентификатор "showCatPics" в вашем HTML? – Leo
Возможно, это связано с тем, что в вашей функции «это» не является щелчком элемента. Когда вы добавляете слушателя, ваша функция принимает один параметр как событие. Затем внутри вашей функции вы можете получить доступ к элементу, нажав через 'e.target' – fmilani