引导模式相关目标未定义

Posted

技术标签:

【中文标题】引导模式相关目标未定义【英文标题】:Bootstrap modal relatedTarget is undefined 【发布时间】:2014-11-29 00:13:15 【问题描述】:

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

这就是我所拥有的:

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

【问题讨论】:

请不要使用“bootstrap”标签,使用“twitter-bootstrap”,因为它意味着别的东西 【参考方案1】:

尝试:

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

【讨论】:

这应该是公认的最佳答案。目前“最好”的没有用。 访问事件对象时未定义的元素 这应该在引导文档中。【参考方案2】:

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

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

【讨论】:

【参考方案3】:

Per the documentation:

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

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

【讨论】:

您能否发布确实涉及点击事件的代码,以使relatedTarget未定义?我正在努力学习这非常糟糕的,基于 BS 3.2.2 的工作示例将是王牌!谢谢;) 使用data-toggle="modal"时会定义 @lowtechsun,你能解决这个问题吗? @user1149244 我很久以前就离开了引导程序,很可能永远不会碰它。如果您愿意,请查看Susy 或Ant,只是一个建议。对于解决方案检查this answer,它应该可以正常工作。【参考方案4】:

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

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

【讨论】:

【参考方案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...
    );
);

【讨论】:

【参考方案6】:

试试这个:

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

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

【讨论】:

事件在 chrome 浏览器中自动传递,这在没有像 Firefox 那样自动传递事件的浏览器中可能会失败。

以上是关于引导模式相关目标未定义的主要内容,如果未能解决你的问题,请参考以下文章

无法在引导模块窗口中读取未定义输入文件的属性“0”

TypeError:无法读取未定义的属性(读取“名称”)

未捕获的类型错误:未定义不是日期选择器引导程序的函数

引导自动完成错误:无法读取未定义的属性“”

安装 MailChimp 弹出 js 时出现未捕获错误:引导工具提示需要 Tether 和未捕获 ReferenceError:未定义 Cookie

引导数据表类型错误:d 未定义