Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.11.2016, 17:36
Профессор
Отправить личное сообщение для Sav2907 Посмотреть профиль Найти все сообщения от Sav2907
 
Регистрация: 15.09.2015
Сообщений: 180

Помогите с add remove class
Есть таблица, по клику на строке, открывается дополнительная инфо, при повторном клике закрывается инфо. Работает, если кликать медленно, а если быстро кликнуть два или несколько раз, открывается много инфо. Как это устранить?
<script>
		$(document).ready(function() {							
			// Details
			$('.parent').on('click', function(){
				parent = $(this);
				if (parent.hasClass('active')) {
					parent.next().remove();					
					parent.removeClass('active');										
				} else {					
					$.ajax({
						url: './lm_ld.php',
						data: {
							login: parent.data('login'),
							datestart: '<?php echo $datestart; ?>',
							dateend: '<?php echo $dateend; ?>',
							shift: '<?php echo $shift; ?>',
							date: parent.data('date'),
							shift: '<?php echo $shift; ?>'
						}
					}).done(function(response) {							
						$('<tr class="details"><td colspan="6">' + response + '</td></tr>').insertAfter(parent);
						parent.addClass('active');											
					});
				}
			});
		});
</script>




Ответить с цитированием
  #2 (permalink)  
Старый 11.11.2016, 17:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Sav2907
Как это устранить?
не удалять запрошенную информацию и не запрашивать дважды
Ответить с цитированием
  #3 (permalink)  
Старый 11.11.2016, 18:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Sav2907,
как-то так ...
$(function() {

      // Details
      $('.parent').on('click', function(){
        var parent = $(this), next = parent.next('.details'), ok = parent.data('ok');
        if(next.length){
        next.toggle();
        parent.toggleClass('active')
        }
        else if(!ok){
          $.ajax({
            url: './lm_ld.php',
            data: {
              login: parent.data('login'),
              datestart: '<?php echo $datestart; ?>',
              dateend: '<?php echo $dateend; ?>',
              shift: '<?php echo $shift; ?>',
              date: parent.data('date'),
              shift: '<?php echo $shift; ?>'
            }
          }).done(function(response) {
            var ok = parent.data('ok');
            if(!ok){
            $('<tr class="details"><td colspan="6">' + response + '</td></tr>').insertAfter(parent);
            parent.addClass('active');
            parent.data('ok',true);
            }

          });
        }
      });


});
Ответить с цитированием
  #4 (permalink)  
Старый 11.11.2016, 19:00
Профессор
Отправить личное сообщение для Sav2907 Посмотреть профиль Найти все сообщения от Sav2907
 
Регистрация: 15.09.2015
Сообщений: 180

рони,
Спасибо, проверить не могу, код на работе. В понедельник проверю
Ответить с цитированием
  #5 (permalink)  
Старый 14.11.2016, 09:14
Профессор
Отправить личное сообщение для Sav2907 Посмотреть профиль Найти все сообщения от Sav2907
 
Регистрация: 15.09.2015
Сообщений: 180

рони,
Спасибо большое, работает
Ответить с цитированием
  #6 (permalink)  
Старый 15.11.2016, 13:59
Профессор
Отправить личное сообщение для Sav2907 Посмотреть профиль Найти все сообщения от Sav2907
 
Регистрация: 15.09.2015
Сообщений: 180

Еще одно, по клику на красный крестик (<a href="del.php?id='.$row['id'].'">), отправляется $ _POST и запись удаляется. После этого, нужно чтобы с таблички запись исчеза без обновления страницы.

Ответить с цитированием
  #7 (permalink)  
Старый 15.11.2016, 14:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Sav2907,
не понимаю
Ответить с цитированием
  #8 (permalink)  
Старый 15.11.2016, 14:13
Профессор
Отправить личное сообщение для Sav2907 Посмотреть профиль Найти все сообщения от Sav2907
 
Регистрация: 15.09.2015
Сообщений: 180

Например кликаю по крестику записи №7, с базы запись удаляется. С таблички она тоже исчезнет после обновления страницы, а нужно обновить саму табличку а не страницу

Последний раз редактировалось Sav2907, 15.11.2016 в 14:15.
Ответить с цитированием
  #9 (permalink)  
Старый 15.11.2016, 15:30
Профессор
Отправить личное сообщение для Sav2907 Посмотреть профиль Найти все сообщения от Sav2907
 
Регистрация: 15.09.2015
Сообщений: 180

Короче говоря, нужно этот кусок прикрутить к крестикам.
.done(function(response) {
            var ok = parent.data('ok');
            if(!ok){
            $('<tr class="details"><td colspan="6">' + response + '</td></tr>').insertAfter(parent);
            parent.addClass('active');
            parent.data('ok',true);
            }
 
          });
Ответить с цитированием
  #10 (permalink)  
Старый 15.11.2016, 15:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Sav2907,
где код для креста?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с поведением jquery метода .append() в таблице aleks555 Элементы интерфейса 2 15.06.2016 18:41
помогите скрыть столбец td Class _Eldar_ Общие вопросы Javascript 4 12.03.2015 12:52
Помогите менять class динамически landerorly Общие вопросы Javascript 4 09.02.2015 06:49
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17
Помогите разобраться со скриптом слайдшоу InviS jQuery 0 23.09.2010 14:47