Задать вопрос
@deadmemoras

Как считать data-id у элемента?

Гружу данные методом get и "вставляю" их через $.each
$.each(data.dialogs, function(){
   var html = '';
   html += '<li data-id="'+ this.id +'" class="im_dialogs">';
   html += '<a href="#'+ this.id +'">';
   html += ' <div class="dialogsEachImg"><img src="/uploads/users/'+ this.avatar +'" alt=""></div>';
   html += '<div class="dialogsEachLogin">'+ this.login +'</div>';
   html += '<div class="dialogsEachMessage">'+ this.message +'</div>';
   html += '</a>';
   html += '</li>';
   $('.dialogsEach').append(html);
   });

.dialogsEach - это

  • Затем, мне нужно отследить клики по этим элементам(их может быть куча), считать data-id и передать серверу.
    Проблема заключается в считывание айди, просто никак не могу..
    Как я понимаю, проблема заключается в том, что из-за того, что я юзаю append - считывать нужно по другому(скорее всего).
    Пытался найти решение в гугле, но голяк..
    Выручайте.
UPD
$('.dialogsEach').click(function() {

    	var that = $(this);
    	var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');

    	$.ajax({
    		method: 'post',
    		url: '/openActiveDialog',
    		dataType: 'json',
    		data: {
    			dialogId: that.data('id'),
    			_token: CSRF_TOKEN
    		},
    		success: function(data) {
    			console.log(data);
    		}
    	})
    });
  • Вопрос задан
  • 258 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@Andrey_Hmytron
Думаю, Вы ищите это ( api.jquery.com/live )
$( document ).on( "click", "li.im_dialogs", function() {
console.log( $(this) .attr('data-id') );
});
Ответ написан
Комментировать
@hoarywolf
$('.im_dialogs').attr('data-id') чем не устраивает?
Ответ написан
alsopub
@alsopub
Не могу проверить, но вдруг поможет или натолкнет на решение.
Немного по разному работают .data('id') и .attr('data-id') - попробуйте заменить одно на другое.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы