2016-08-02 5 views
1

я иметь функцию в том числе в то время как цикл в моей функции первого процесса завершена, но опять-таки не пошел в случае щелчкавозвращение не работает

$('body').on('click', 'button.expandcollapse', function() { 
 
     // var currenttrid = $("tr.selected").attr("data-id"); 
 
     var parentid = $(".selected").data("id"); 
 
     var parrentid = (parentid) - 1; 
 
     var rowclick = parseInt($(this).closest('tr').attr('data-id')); 
 
     var currentid = rowclick + 1; 
 

 
     if ($("tr[data-id='" + parrentid + "'] > td:first-child button").hasClass("expandcollapse")) { 
 
     var parentleft = $("tr[data-id='" + rowclick + "']> td:first-child").css("padding-left"); 
 
     while (true) { 
 
      var chiledtrleft = $("tr[data-id='" + currentid + "']> td:first-child").css("padding-left"); 
 

 
      if (chiledtrleft <= parentleft) { 
 
      break; 
 
      } 
 

 
      $("tr[data-id='" + currentid + "']").hide(); 
 
      currentid = currentid + 1; 
 
     } 
 
     $("span", this).text 
 
     } else { 
 
     var parentleft = $("tr[data-id='" + rowclick + "']> td:first-child").css("padding-left"); 
 
     while (true) { 
 
      var chiledtrleft = $("tr[data-id='" + currentid + "']> td:first-child").css("padding-left"); 
 

 
      if (chiledtrleft <= parentleft) { 
 
      break; 
 
      } 
 

 
      $("tr[data-id='" + currentid + "']").show(); 
 
      currentid = currentid + 1; 
 

 
     } 
 
     $("button").removeClass("expandcollapse"); 
 
     $("span", this).text("-"); 
 
     }

я хочу снова приходит щелкнуть событие теперь условие else постоянно работает, но я хочу перейти к событию click после одного шага.

+0

ok теперь только один цикл завершен. Я хочу снова выполнить эту функцию при щелчке – aswathy

+0

@RoryMcCrossan прав? Есть синтаксическая ошибка, сначала ее решить. –

+0

Выбрасывает любую ошибку ... также использует $ (document) .on ("click" ... вместо $ ('body'). On ("click" ... –

ответ

1

В конце функции Вы делаете

$("button").removeClass("expandcollapse"); 

Так как нет кнопки с классом expandcollapse. Он не запускается второй раз

Оформить заказ Demo. Ваш код выглядит примерно так и не работает при втором нажатии.

Так что лучше планируйте логику сначала перед ее внедрением.

Вы можете использовать этот селектор, чтобы заставить его работать (только и только тогда, когда вы не добавляете кнопку динамически)

$("button.expandcollapse").click(function(){ 

Working Demo

если динамический затем использовать селектор с этим изменением для Ваша вторая последняя строка кода

$(this).removeClass("expandcollapse"); 

Предложение:Лучше используйте другой класс для .removeClass(). Почему вы хотите удалить тот же класс, с которым вы запускаете событие. Пожалуйста, используйте другой класс для других функций в функции щелчка.

+0

его работает в демо, но его не принято в моем коде , почему? пожалуйста, дайте мне любые другие предложения – aswathy

+1

@aswathy: вы добавляете кнопку динамической? –

+0

ya ее динамическая добавленная кнопка – aswathy

Смежные вопросы