2015-08-13 3 views
0

Я подробно изучил это в stackexchange, и я не думаю, что я делаю «общую» ошибку, а другие ответы не решили.Строка, не прилагаемая к динамически созданному Div

Проблема заключается в том, что я пытаюсь добавить данные в DEFINITELY существующий div определенного идентификатора. Я знаю, что div динамически генерируется, и, вероятно, поэтому он скрыт.

Несмотря на использование jquery on Я не могу получить jquery, чтобы найти конкретный div.

Вот код:

$(document).ready(function() { 

    function example_append_terms(data) { 
     var sender_id = data['sender_id']; 
     $.each(data, function(k, v) { 
      if (k != 'sender_id') { 
       html = '<span data-lemma="' + v['key'] + '" class="lemma">' + v['name'] + '</span>'; 

       $('#' + sender_id + ' .lemmas').append(html); 
      } 
     }); 
    } 

    function example_get_options(data) { 
     $.ajax({ 
      url: '/example/', 
      type: 'post', 
      data: data, 
      success: function(data) { 
       //alert(JSON.stringify(data)) 
       example_append_terms(data) 
      }, 
      failure: function(data) { 
       alert('Got an error dude'); 
      } 
     }); 
     return false; 
    } 


    $(document).on('click', ".example-synset-option", function() { 
     var synset = $(this).data('name'); 
     var sender_id = $(this).attr('id') 
     example_get_options({ 
      'synset': synset, 
      'sender_id': sender_id, 
     }); 
    }); 

}); 

При нажатии определенной DIV, действие обжигают, чтобы «получить варианты», который в свою очередь запускает функцию Ajax. Функция ajax выполняет функцию «replacer» example_append_terms.

Тестирование до example_append_terms. Итерация, безусловно, работает. Но когда я проверил $('#' + sender_id + ' .lemmas').length, я продолжаю получать 0.

Где находится jQuery newb Неправильный?

+0

Где вы создаете элемент с '.example-Sysnet класс -option'? – DGS

+0

@ 1Up вы можете показать нам формат ваших ** данных **.? –

+0

Является ли '$ ('#' + sender_id + '.lemmas')' уже присутствующим на странице. Если да, пожалуйста, покажите его HTML –

ответ

0

Я установил ее, изменив материал ...

По какой-то необъяснимой причине, забирающий атрибут данных работал лучше, чем Ид ..

function intellitag_append_terms(data) { 
    var sender_id = $('*[data-location="'+data['sender_id']+'"] .lemmas');   
    $.each(data, function(k, v) { 
     if (k != 'sender_id') { 
      html = $('<span data-lemma="' + v['key'] + '" class="label label-primary lemma">' + v['name'] + '</span>'); 
      html.appendTo(sender_id) 
      //$('#' + sender_id).append(html); 
     } 
    }); 
}