#javascript #php #jquery
#javascript #php #jquery
Вопрос:
Чего я хочу добиться, так это прикрепить идентификатор записи к элементу управления звуком HTML при его воспроизведении. Я нашел способ получить ответ, когда кто-то нажимает на кнопку воспроизведения.
Теперь у меня возникают проблемы с привязкой идентификатора записи к этому js, чтобы я мог ПОДСЧИТАТЬ, сколько раз было воспроизведено аудио в формате HTML с правильными данными.
<div id="293">
<audio class="6" id="mAudio" controls="">
<source src="horse.mp3">
</audio>
Первый фрагмент кода — это мой элемент управления звуком, созданный с помощью div-с идентификатором записи
window.onload=function(){
var player = document.getElementById("mAudio");
player.addEventListener("play", function () {
console.log("audio playing");
var post_id = $(this).data('post_id');
var action = 'play';
alert('Post id :' post_id);
$.ajax({
url:"action.php",
method:"POST",
data:{post_id:post_id, action:action},
success:function(data)
{
/* alert(data);*/
fetch_post();
}
})
});
}
Затем приведенный выше код, поскольку я пытаюсь получить идентификатор записи, говорит UNDEFINED
Комментарии:
1. У меня есть несколько записей из базы данных
2.
$(this).data('post_id')
где вы это определяете? Чего вы ожидаете от этого?3. Это была моя попытка получить POST_ID, я попробовал несколько попыток, но вижу, что у меня ничего не получается
4. Откуда вы ожидаете
POST_ID
прийти? Что вы ожидаете от этого?5. Я подумал, может быть, это «$ (this).data (‘post_id’)» должно было дать этот идентификатор div, потому что этот идентификатор div — это идентификатор записи, который я ищу
Ответ №1:
Вам нужно вернуться к div, который содержит id. Вам нужно сделать это :
var post_id = $(this).parent().attr('id');
Комментарии:
1.
this.parentElement.id
даст вам идентификатор родительского элемента проигрывателя. Путем создания объекта jQuery.