Удаленно запустить клонированный модал - PullRequest
0 голосов
/ 07 ноября 2018

Я могу клонировать новый модал и запустить его.

Однако возможно ли дистанционно запустить недавно клонированный модал с помощью щелчка или переключения?

Шаги, которые я хотел бы воссоздать:

  1. Пользователь нажимает «Клон», чтобы клонировать модальный

  2. Javascript клонирует модальные и переименовывает соответствующие теги (кнопки и модальные теги)

  3. Пользователь нажимает «триггер удаленного модального 2», чтобы дистанционно активировать кнопку «Запуск демонстрационного модального 2»

Вот скрипка: http://jsfiddle.net/hde13s2t/33/

Кнопка «Launch Demo Modal 2» работает при прямом нажатии. Но он не срабатывает, если нажата кнопка «Удаленный триггер модального режима».

Ответ должен быть удаленным, так как я буду настраивать триггеры для многих различных модалов.

Ниже мой javascript:

$(document).on("click", "#clicktoclone", function() {
    var secondmodal = $("#launchmodal1").clone();

  // updating button id and data-target for modal 2
  secondmodal.find("#examplemodalbutton1").attr("id", "examplemodalbutton2").attr("data-target", "#exampleModal2").html("Launch demo modal 2");

  // updating modal id for modal 2
  secondmodal.find("#exampleModal1").attr("id", "exampleModal2");

  secondmodal.appendTo('#launchmodal2');

    // set new click event to show the cloned modal
});

  $(document).on('click', '.launchmodal', function() {
    var targetSelector = $(this).data('target');
    $(targetSelector).modal();
  });

  $(document).on('click', '#remotemodal', function() {
    var targetSelectorid = $(this).attr("value");
    $("#exampleModal"+targetSelectorid).trigger("toggle");
  });

Ниже HTML

<div id="launchmodal1">

  <button type="button" class="launchmodal btn btn-primary" data-toggle="modal" id="examplemodalbutton1" data-target="#exampleModal1">
    Launch demo modal 1
  </button>

  <!-- Modal -->
  <div class="modal fade" id="exampleModal1" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <div class="modal-body">
          ...
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
          <button type="button" class="btn btn-primary">Save changes</button>
        </div>
      </div>
    </div>
  </div>
 </div>
</div>
<button type="button" class="btn btn-secondary" id="clicktoclone">Clone</button>

<div id="launchmodal2"><BR><BR>
<button type="button" class="btn btn-success" id="remotemodal" value="2">Remote modal 2 trigger</button>
</div>

1 Ответ

0 голосов
/ 07 ноября 2018

Вы все сделали правильно, кроме функции открытия клонированного модала.

В вашем #remotemodal обработчике событий щелчка вместо:

$("#exampleModal"+targetSelectorid).trigger("toggle");

Использование:

$("#exampleModal"+targetSelectorid).modal("show");

При желании, если вы хотите смоделировать нажатие кнопки Launch demo modal 2 как пользователь (больше относится к вашему вопросу), поменяйте строку выше на:

$("#examplemodalbutton"+targetSelectorid).trigger("click");
...