линия

Главная

пятница, 2 февраля 2018 г.

JQuery: автоматически добавляем кнопки в таблицу или клиент слезам не верит

Редкий клиент примет работу как она есть. Обычно изощренный ум  клиента исхитрится выродить  такое , что  ты, разумеется,  никак не ожидаешь. Как ни странно, в  этот раз я жутко обрадовался этой задачке, ибо,  уже изрядно устал от типовых задач. А тут такое, на те, получите. Если ближе к делу , то задание кратко звучит так: на странце товаров есть таблицы, нужно чтобы  под каждой колонкой были кнопки "заказать", при нажати форма всплывает и тд...
Почесав небритый подбородок понес свое тело на диван, дабы полежать и "бумажно" подумать о сие деле. Решение пришло так же неожиданно, как обычно приходит дедлайн.




Ну, собственно сам код:

$(function() {
 //есть ли такой обьект?
 if($('.add-btns')!=undefined){
     //Наша таблица с классом = add-btns
  var $tbl = $('.add-btns');
  // смотрим сколько стобцов у таблицы
  var tr = $tbl.find('tr').first().find('td'); 
  var trTxt = '< tr class="tr-btns">';
  for(var i = 0; i < tr.length-1; i++){
   trTxt+= 'заказать';
  }
  trTxt+= '';
  //добавляем в конец таблицы еще одну строку с кнопками
  $tbl.append(trTxt);
  
  //Вешаем обработчик
  $('.tbl-btn').click(function(){
     /*
      Вызываем окно. В данном проекте вызывается таким образом.
   drevo_form_show(9,'');   
     */
   var i = $(this).data('i');
   i+=2;
   var $tbl = $('.add-btns');
   var txt = '';
   //Добавляем заголовок
   txt+=$('h1').text();
   txt+=';';
   var arrTr= $tbl.find('tr');
   for(var j = 0; j < arrTr.length; j++){
    var name =$(arrTr[j]).find('td:first').text();
    var val =$(arrTr[j]).find('td:nth-child('+i+')').text();
    if(name!=''){
     txt+=name+' - ';
    }
    if(val!='' &&  val!='заказать'){
     txt+=val;
    }
    txt+=';';
    
   }  
   console.log(txt);
   //Добавляем данные в форму. У меня невилимый.
   $('.hidden-input-data').val(txt);  
  });
 }
 
});




Все

Комментариев нет:

Отправить комментарий