2015-06-23 1 views
0

Я пытаюсь создать таблицу времени в реальном времени из-за ограничений, которые я должен использовать для google-канала api. Поэтому я могу получать сообщения прекрасно, что все работает, я пытаюсь добавить или обновить код, но мои проблемы являются обычным из добавленных элементов, недоступных с помощью jquery. Я знаю, что это связано с тем, как работает дом, но я ищу способ вокруг его здесь это мой текущий код, я знаю, что это не сработает, но все ответы, которые я нахожу, говорят о кнопках aboit Я не пользуюсь кнопками или кликами, это просто обновляет onMessage. Все, что я хочу сделать, это добавить строку, если она не существует, и обновить строку, если это произойдет, но проблемы в том, что все они живут, а dom не видит их, потому что они добавляются впоследствии.API-интерфейс Google Channel - таблица обновления JQuery

Вы можете предположить, что имя уникально для каждой записи, поэтому оно может использоваться как идентификатор.

if($('#tr_' + messageParsed.name).length) 
{ 
    html = "<td>" + messageParsed.name + "</td><td>" + messageParsed.lap + "</td><td>" + messageParsed.pos + "</td><td>" + messageParsed.s1 + "</td><td>" + messageParsed.s2 + "</td><td>" + messageParsed.s3 + "</td>"; 
    console.log('Update'); 
    $('#tr_' + messageParsed.name).html(html); 
} 
else { 
    html = "<tr id=\"tr_" + messageParsed.name + "\"><td>" + messageParsed.name + "</td><td>" + messageParsed.lap + "</td><td>" + messageParsed.pos + "</td><td>" + messageParsed.s1 + "</td><td>" + messageParsed.s2 + "</td><td>" + messageParsed.s3 + "</td></tr>"; 
    $("#times").append(html); 
} 

Вот HTML для моей таблицы это супер просто, как все, что загружается в таблицу поступает из канала апи, Сомон был обязан просить его, так что я думал, что я хотел бы добавить его прочь с прямыми.

<table class="table table-striped"> 
    <thead> 
     <tr> 
      <th>Name</th> 
      <th>Lap</th> 
      <th>Position</th> 
      <th>Sector 1</th> 
      <th>Sector 2</th> 
      <th>Sector 3</th> 
     </tr> 
    </thead> 
    <tbody id="times"> 
    </tbody> 
</table> 

ответ

0

Для всех, кто заинтересован в том, как я решил эту проблему, я разработал способ с использованием Java переменные, чтобы проверить, если они существуют, и генерировать новую таблицу каждый раз, когда это не так эффективно, но это работает.

if($.inArray(messageParsed.name, timing) !== -1) 
     { 
      var elmNum = $.inArray(messageParsed.name, timing); 
      timingStore[elmNum] = messageParsed; 
     } 
     else { 
      timing.push(messageParsed.name); 
      timingStore.push(messageParsed); 
     } 
     // String Construction 
     var htmlString; 
     console.log(timingStore) 
     for(var i = 0; i < timingStore.length; i++) 
     { 
      htmlString += "<tr><td>" + timingStore[i].name + "</td><td>" + timingStore[i].lap + "</td><td>" + timingStore[i].pos + "</td><td>" + timingStore[i].s1 + "</td><td>" + timingStore[i].s2 + "</td><td>" + timingStore[i].s3 + "</td></tr>"; 
     } 
     $('#times').html(htmlString) 
Смежные вопросы