javascript - 单击时克隆和附加会使多个元素和切换不起作用

标签 javascript jquery html

我正在尝试克隆和附加元素。在我追加之后,我添加了一个切换动画。第一次点击它工作正常。在我附加多个元素之后。

动画也不起作用。

这是 html:

<div class="parent hide">
    <div class="header">
        <h6>Header</h6>
    </div>
    <div class="content">
        <p>paragraph content </p>
    </div>
</div>

<div id="content">

</div>

<button>Add</button>

Js:

$('.parent').on('click', '.header', function () {
    $(this).find('h6').toggleClass('name').end()
    .siblings('.content').slideToggle();
});

$('button').on('click', function () {
   var newParent = $('.parent').clone();
   $('#content').append(newParent.removeClass('hide'));
});

JSfiddle

更新:

我更新了克隆传递 var newParent = $('.parent').clone(true); - 动画有效!

最佳答案

您应该仅克隆第一个元素(或最后一个元素):

var newParent = $('.parent:first').clone(true);

EXAMPLE 1

使用.clone(true)似乎可以修复动画。另一个解决方案是在单击时定位父级并委托(delegate) .parent .header,因为克隆的 .parent 在初始加载后被添加到 DOM:

$('#content ').on('click', '.parent .header', function () {

而不是

$('.parent').on('click', '.header', function () {

EXAMPLE 2

关于javascript - 单击时克隆和附加会使多个元素和切换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27867463/

相关文章:

javascript - 悬停突出显示子项不应突出显示父项

javascript - 在另一个模块中重用私有(private) jQuery 函数

javascript - 如何在jquery插入的元素上发生 'click'事件?

jquery - 在哪里存储额外信息?

html - 当字体位于不同的文件夹中时,将字体与 style.css 链接

javascript - 使用 HTML DOM JS 分配事件

javascript - 在 JavaScript 中有没有像 `bit` 这样的东西?

javascript - 如何在 Protractor 中使用 browser.actions().sendKeys 和 "?"符号?

jquery - 是否有任何选择器可以对文本进行完美匹配?

asp.net-mvc - 使用 "tel:"标签时,出现 "A potentially dangerous Request.Path value was detected from the client (:). "错误