【问题标题】:Making last dynamic added accordion open打开最后一个动态添加的手风琴
【发布时间】:2018-02-07 21:30:03
【问题描述】:

我正在尝试以编程方式添加引导程序accordion,以便每次单击“添加”按钮时,都会生成一个新的手风琴,并且之前的手风琴或任何其他手风琴都会关闭。我无法弄清楚有关如何使用 methods 以及要通过哪些选项的引导文档,我放了一些我的但它不起作用。

if(this.aCount === 1){
   $('.collapse').collapse('hide');
 }else if(this.aCount === 2){
   $('.collapse').collapse('hide');
   $('.collapse').collapse('show');
 }

问题是我在手风琴上的 id 是动态的,所以我不能使用它,但我的脚本总共会生成 3 个手风琴,并且每次添加新的手风琴时,我都想打开最近添加的手风琴并关闭所有打开的手风琴。现在它打开了第一个。

【问题讨论】:

    标签: jquery twitter-bootstrap bootstrap-4


    【解决方案1】:

    这是我的工作jsFiddle,试试这个。我正在使用 jquery toggle() 方法在单击时打开和关闭每个 div。然后我用siblings()调用了相对的div元素。

    我在这里没有使用引导程序。 :)
    希望这会对你有所帮助。

    【讨论】:

    • 不确定如何将您的示例应用于我的示例。
    • 好吧@Nofel,为什么?
    • 我试过 `$('.collapse').siblings().collapse('hide');` 但没用。
    • 你有你的html代码吗?请将其提供给您的问题,以便我们尝试如何应用此代码:)
    • 我正在使用TBS collapse
    【解决方案2】:

    您可以使用 .on 方法在 jQuery 中“委托事件”,以便将事件绑定到动态创建的元素:

    jQuery(document).on('click', '.collapse', function (e)
    {
        // SOME .collapse WAS CLICKED!
        jQuery('.collapse').collapse('hide');
    });
    

    这样,每次点击 .collapse 元素时——即使该元素是动态创建的——所有其他元素都会关闭。

    【讨论】:

    • 我让它工作了,但现在我的代码一次又一次地运行(我猜),所以当它被隐藏时,它不会改变减号。这是我的新codepen
    • @Nofel 这是你笔的分叉版本:codepen.io/anon/pen/wqRXZz我在这里和那里简化了一些东西。
    • 它无法正常工作。红色边框表示哪个 div 以加号/减号打开,而你的加减号不起作用。
    • @Nofel 我更新了分叉。 codepen.io/anon/pen/wqRXZz 现在可以了,但是超级丑。 SPAN 元素在标记中的位置很奇怪,请考虑在 a:after 上应用加减类
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    相关资源
    最近更新 更多