не может получить data-id в ответе ajax для синтаксического анализа модального - PullRequest
0 голосов
/ 09 июля 2019

У меня проблема, когда я получаю data-id в href от ответа ajax, ответ всегда undefined.

$("#loader_ekpresi").show();
  $.ajax({
    url:"<?php echo site_url() ?>Home/get_ekspresi",
    type:'GET',
    dataType: 'json',
    data: {page:page}
  }).done(function(response){
      $.each(response, function( key, value) {
        $('#gallery_show_ekpresi').append('<div class="item-box-gallery-4">'+
            '<input type="hidden" id="url_ig" value="'+value.attachment_link+'embed/captioned">'+
            '<a href="#" id="get_url" data-id="'+value.attachment_link+'embed/captioned" data-toggle="modal" data-target="#popup_gallery_modal">'+
            '<img src="'+value.attachment_link+'media/?size=l">'+
            '</a>'+
        '</div>');
      });
});


$('#get_url').click(function() {
  var gallery_modal = $(this).attr('data-id'); 
    alert(gallery_modal);
});

всегда есть undefined

Ответы [ 3 ]

3 голосов
/ 09 июля 2019

Делегируйте ваше событие клика

$('#gallery_show_ekpresi').on('click','#get_url',function() {
    var gallery_modal = $(this).attr('data-id'); 
        alert(gallery_modal);
});

демо:

var response = [{
  attachment_link: '1'

}, {
  attachment_link: '2'

}]
$.each(response, function(key, value) {

  $('#gallery_show_ekpresi').append('<div class="item-box-gallery-4">' +
    '<input type="hidden" id="url_ig" value="' + value.attachment_link + 'embed/captioned">' +
    '<a href="#" id="get_url" data-id="' + value.attachment_link + 'embed/captioned" data-toggle="modal" data-target="#popup_gallery_modal">' +
    '<img src="' + value.attachment_link + 'media/?size=l">' +
    '</a>' +
    '</div>');
});
$('#gallery_show_ekpresi').on('click', '#get_url', function() {
  var gallery_modal = $(this).attr('data-id');
  alert(gallery_modal);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="gallery_show_ekpresi"></div>
2 голосов
/ 09 июля 2019

Используйте классы вместо идентификатора, вы добавляете в цикле.

$("#loader_ekpresi").show();
            $.ajax({
                url:"<?php echo site_url() ?>Home/get_ekspresi",
                type:'GET',
                dataType: 'json',
                data: {page:page}
            }).done(function(response){

                $.each(response, function( key, value) {

                    $('#gallery_show_ekpresi').append($('<div class="item-box-gallery-4">'+
                        '<input type="hidden" class="url_ig" value="'+value.attachment_link+'embed/captioned">'+
                        '<a href="#" class="get_url" data-id="'+value.attachment_link+'embed/captioned" data-toggle="modal" data-target="#popup_gallery_modal">'+
                        '<img src="'+value.attachment_link+'media/?size=l">'+
                        '</a>'+
                    '</div>'));
                });
});


$('.get_url').click(function() {
    var gallery_modal = $(this).attr('data-id'); 
        alert(gallery_modal);
});
2 голосов
/ 09 июля 2019

Вы можете получить напрямую

$(this).data('id'); 

https://api.jquery.com/data/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...