Bootstrap modal relatedTarget未定义

我试图使用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'); }); 

尝试:

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

根据文件 :

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

但你只是在调用.modal('toggle')这不涉及任何点击事件 ,因此在您的情况下为什么relatedTarget未定义。

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

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

我让它适合我。 试试这个:

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