Подтвердить что ты не робот

Bootstrap modal relatedTarget undefined

Я пытаюсь получить элемент clicked с помощью свойства relatedTarget события show.bs.modal. Он всегда получает undefined.

Это то, что у меня есть:

  $("#curCarSelect").on('click', function(e) {
    $("#curCarModal").on('show.bs.modal', function(event) {
      modalOpenedby = event.relatedTarget; 
      alert(modalOpenedby);
    }).modal('toggle');
  });
4b9b3361

Ответ 1

попробовать:

$("#curCarSelect").on('click', function(e) {
   $modal.modal('toggle', $(this));
});

где $modal - ваш модальный элемент для открытия, затем:

$modal.on('show.bs.modal', function (event) {
   var button = $(event.relatedTarget) // Button that triggered the modal
})

Ответ 2

В документации:

Если вызвано щелчком, элемент clicked доступен как свойство relatedTarget события.

Но вы просто вызываете .modal('toggle'). Это не связано с событием click, поэтому relatedTarget в undefined в вашем случае.

Ответ 3

Если вам нужно использовать event.relatedTarget в динамически открытом модальном формате, вы можете передать цель в качестве второго аргумента в модальной функции.

$("#curCarSelect").on('click', function(e) {
    $("#curCarModal").modal('toggle', $("#curCarSelect")); 
});

Ответ 4

попробуйте следующее:

$('#curCarModal').on('shown.bs.modal', function () {
    modalOpenedby = event.relatedTarget; 
});

$("#curCarSelect").on('click', function(e) {
    $("#curCarModal").modal('toggle'); 
    alert(modalOpenedby);
});

Ответ 5

Я заставляю это работать для меня. Попробуйте следующее:

$("#curCarSelect").on('click', function(e) {
    $("#curCarModal").on('show.bs.modal', function(event) {
        modalOpenedby = event.relatedTarget; 
        alert(modalOpenedby);
    }).modal('toggle', e);
});

Ответ 6

Обходной путь для этого сработал у меня при загрузке 2:

$("a[data-toggle='modal']").on('click', function(e) {
    $_clObj = $(this); //clicked object
    $_mdlObj = $_clObj.attr('data-target'); //modal element id 
    $($_mdlObj).on('shown.bs.modal',{ _clObj: $_clObj }, function (event) {
           $_clObj = event.data._clObj; //$_clObj is the clicked element !!!
           //do your stuff here...
    });
});