Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 引导模式相关目标未定义_Javascript_Jquery_Twitter Bootstrap_Twitter Bootstrap 3 - Fatal编程技术网

Javascript 引导模式相关目标未定义

Javascript 引导模式相关目标未定义,javascript,jquery,twitter-bootstrap,twitter-bootstrap-3,Javascript,Jquery,Twitter Bootstrap,Twitter Bootstrap 3,我试图使用show.bs.modal事件的属性relatedTarget获取单击的元素。但它总是变得不明确 这就是我所拥有的: $("#curCarSelect").on('click', function(e) { $("#curCarModal").on('show.bs.modal', function(event) { modalOpenedby = event.relatedTarget; alert(modalOpenedby); }).

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

这就是我所拥有的:

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

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

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

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


但您只是在调用
.modal('toggle')
这不涉及任何点击事件,因此在您的案例中,
relatedTarget
处于未定义状态。

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

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

其中$modal是要打开的模态元素,然后:

$modal.on('show.bs.modal', function (event) {
   var button = $(event.relatedTarget) // Button that triggered the modal
})

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

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

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

请不要使用“bootstrap”标签,使用“twitter bootstrap”,因为它意味着其他东西。您可以发布与点击事件相关的代码,这样
relatedTarget
就不会未定义?我正试图了解这一点非常糟糕,一个基于BS3.2.2的工作示例将是ace!谢谢;)当您使用
data toggle=“modal”
@lowtechsun时,它将被定义。您是否能够理解这一点?@user1149244我很久以前就离开了引导,很可能永远不会碰它。调查一下,或者如果你愿意的话,只是一个建议。对于解决方案检查,它应该可以正常工作。这应该是公认的最佳答案。当前“最佳”的一个是无用的。访问事件对象时未定义元素这应该在引导文档中。事件在chrome浏览器中自动传递这可能会在浏览器中失败,而在Firefox中事件不会自动传递。
$("#curCarSelect").on('click', function(e) {
    $("#curCarModal").modal('toggle', $("#curCarSelect")); 
});