引导模式relatedTarget未定义

Bootstrap modal relatedTarget is undefined

本文关键字:未定义 relatedTarget 模式      更新时间:2023-09-26

我正在尝试使用show.bs.modal事件的属性relatedTarget获取单击的元素。但它总是变得不明确。

这就是我所拥有的:

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

try:

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

如果需要在动态打开的模态中使用event.relatedTarget,则可以将目标作为模态函数中的第二个参数传递。

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

根据文档:

如果是由单击引起的,则单击的元素可用作事件的relatedTarget属性。

但你只是在给.modal('toggle')打电话这不涉及任何点击事件,因此relatedTarget在您的案例中未定义。

我让它为我工作。试试这个:

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

在bootstrap 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...
    });
});

试试这个:

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