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');
});
Ответы
Ответ 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...
});
});