如何在Bootstrap崩溃事件中获取单击的元素?

Pro*_*tas 11 jquery twitter-bootstrap twitter-bootstrap-3

我无法使用Bootstrap 3.3.4在崩溃事件中找到单击的锚元素:

$('.collapse').on('show.bs.collapse', function (e) {
    // Get clicked element that initiated the collapse...
});
Run Code Online (Sandbox Code Playgroud)

我需要这个,因为如果被点击的元素具有某个数据属性,我想防止折叠.另一种选择是通过使用来挂钩.on('click', function()),但是在点击时还有其他需要运行的事件,所以这似乎不适合我.在DOM中搜索最近的锚点或类似的东西也不会有效,因为彼此旁边有多个锚点.

Ale*_*sov 9

试试这个

$element.on('shown.bs.collapse', function(e) {
    var $clickedBtn = $(e.target).data('bs.collapse').$trigger;
});
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于`shown.bs.collapse`事件.不适用于`show.bs.collapse`,因为当时没有设置数据. (4认同)

Pro*_*tas 8

由于我的案例在彼此旁边有多个锚点(即忽略常规的Bootstrap结构),我最终使用折叠div的ID搜索所点击的锚点:

$('.collapse').on('show.bs.collapse', function (e) {
    // Get clicked element that initiated the collapse...
    clicked = $(document).find("[href='#" + $(e.target).attr('id') + "']")
});
Run Code Online (Sandbox Code Playgroud)