Bootstrap modal relatedTarget未定义

时间:2014-10-03 21:57:47

标签: javascript jquery twitter-bootstrap twitter-bootstrap-3

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

这就是我所拥有的:

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

5 个答案:

答案 0 :(得分:36)

尝试:

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

答案 1 :(得分:1)

Per the documentation

  

如果由点击引起,则点击的元素可用作活动的relatedTarget属性。

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

我让它对我有用。试试这个:

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

答案 4 :(得分:-1)

试试这个:

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

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