нажатие одной кнопки для имитации нажатия нескольких кнопок

0

У меня есть множество кнопок на разных уровнях внутри вложенного аккордеона JQuery. Это работает как телефонная книга, и когда нажимаются кнопки, номера добавляются в инструмент связи.

Я надеялся поставить кнопку в верхней части каждого подуровня в аккордеоне, который добавит все остальные кнопки на этом подуровне в поле "Кому:". Я полагаю, что есть элегантный способ сделать то, что я в противном случае мог бы выполнить грубой силой в уродливой манере. Благодарю!

  <div id="accordion-nest">
  <h3>First group</h3>
      <div>
        <button id="allGroupOne">Add all of Group One</button>   <-----Button I want
        <button id="Guy1">Biff 555-1111</button> 
        <button id="Guy2">Tagg 555-1112</button> 
        <button id="Guy3">Mitt 555-1113</button> 
          ......
      </div>
    <h3>Second group</h3>
      <div>
        <button id="Guy13">Jeb 555-2222</button>
    </div>
          <h3>Third group</h3>
      <div>
        <button id="Guy33">Uncle Jesse 555-99999</button>
      </div>
  </div>

JS/JQuery

$('button').click(function () {

    var last8 = (this.textContent).slice(-8);  

    if (pageNames == '') {
        pageNames = (this.textContent).slice(0, -8);
    } else {
        pageNames = pageNames + " " + (this.textContent).slice(0, -8);
    }

    if ($('#pageTo').val() != '') {
        $('#pageTo').val($('#pageTo').val()+', '+ areaCode + last8); 
    } else {
        $('#pageTo').val(areaCode+last8);    
    }
}
  • 1
    поддельные имена в твоем примере телефонной книги сделали мой день. Я не знаю почему.
Теги:
accordion

1 ответ

1
Лучший ответ

Я бы добавил тот же класс ко всем кнопкам "Добавить все":

<button class="allGroup">Add all of Group One</button>

И также добавит тот же класс ко всем другим кнопкам телефона:

<button class="phone" id="Guy1">Biff 555-1111</button>

Кроме того, добавьте класс в div который содержит каждую группу, например:

<div class="groupContainer">

Тогда это будет jquery при нажатии кнопки "Добавить все":

$(".allGroupOne").click(function(){
   var $parent = $(this).closest('.groupContainer');  //The parent div
   $parent.find(".phone").trigger('click');  //This simulates each button click
});

Это!

ура

  • 0
    Вау, быстрый ответ. За то время, которое у меня ушло на обновление сайта, у вас уже был этот ответ. Это хорошо работает для имен, но пытается добавить кнопку «Добавить все из группы один» в поле «Кому:», несмотря на то, что в нем отсутствует класс .phone.
  • 0
    Изменил $ ('button') на $ ('button.phone'), и это решило проблему. Тем не менее, я до сих пор не понимаю, почему он пытался добавить кнопку «All Group One» в поле «To:». Была ли попытка добавить все в весь div, а не только классы .phone внутри div?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню