javascript modal 부트 스트랩 모달 관련 타겟이 정의되지 않았습니다.




data jquery (5)

show.bs.modal 이벤트의 show.bs.modal 속성을 사용하여 클릭 된 요소를 가져 show.bs.modal 합니다. 그것은 항상 정의되지 않고있다.

이것이 내가 가진 것입니다 :

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

Answer #1

modal을 동적으로 열었을 때 event.relatedTarget 을 사용해야하는 경우 모달 함수에서 두 번째 인수로 대상을 전달할 수 있습니다.

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

Answer #2

문서 별 :

클릭에 의해 발생한 경우 클릭 된 요소는 이벤트의 relatedTarget 속성으로 사용할 수 있습니다.

그러나 당신은 단지 .modal('toggle') 이라고 부르고 .modal('toggle') . 그건 어떤 클릭 이벤트도 포함하지 않으므로 relatedTarget 이 귀하의 경우에 정의되지 않은 이유는 무엇 relatedTarget ?


Answer #3

시험:

$("#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
})

Answer #4

이 시도:

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

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

Answer #5

이것에 대한 해결 방법은 부트 스트랩 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...
    });
});




twitter-bootstrap-3