insertAfter clicked元素

时间:2012-10-16 10:33:45

标签: javascript jquery

我有以下标记;

<div class="model-timeline">
        <p>Text</p>
        <div class="timeline">
            <div class="span-blank-5"></div>
            <div class="time-span-1"></div>
            <div class="time-span-2"></div>
            <div class="time-span-2"></div>
        </div>
    </div>
<div class="model-timeline">
        <p>Text</p>
        <div class="timeline">
            <div class="span-blank-5"></div>
            <div class="time-span-1"></div>
            <div class="time-span-2"></div>
            <div class="time-span-2"></div>
        </div>
    </div>

和脚本;

    $('[class*="time-span"]').on('click', function () {
    $('.model-detail-panel').insertAfter('.timeline').slideDown('fast', function () {
        $('html,body').animate({
            scrollTop: $(this).offset().top
        }, 500);
    });
});

点击其中一个时间跨度类后,我需要插入一个新的div'company-detail-panel'。

这个新的div应该出现在时间轴类之后,并且只出现在被点击的时间轴类的父div中。

我的代码是插入div,但它在每个时间轴类之后添加它,这不是我需要的行为。

如何修改我的代码以仅定位元素的单击父元素,从而插入div一次?

提前致谢。

1 个答案:

答案 0 :(得分:4)

使用

 $('.model-detail-panel').insertAfter($(this).parent()) ...

这会将您的面板插入所单击元素的父级之后。