javascript - 如何使用 HTML 中存在的相同表单出现在页面的不同位置 onclick

标签 javascript jquery html forms css

我正在尝试使用 HTML/jQuery 创建一个评论流,就像在 Reddit 上一样。

我已经有了主帖子回复按钮的评论表单,就像我想要的那样工作,现在我希望对所有子评论回复按钮使用相同的表单。

我尝试使用下面的 jQuery 代码使用 inserAfter() 来做到这一点,但它只部分起作用,即当我点击任何子评论的回复按钮时,评论表单只为最后一个子评论出现一次,然后当我我点击它两次评论表单将显示所有子评论。

下面是我的 jQuery -

$(".comment-box-link, .comment-box").on('click', function(e) {
    $('.new-topic-wrapper').slideToggle('fast');

    if ($(".new-topic-wrapper").is(':visible')) {
        $("html, body").animate({ scrollTop: $(".new-topic-wrapper").offset().top - 50 }, 'fast');
    }
});
$('.comment-box').click(function(e) {
    $('.new-topic-wrapper').show().insertAfter('.comment-bottom');
});

最佳答案

您需要限制附加到点击的single-comment-wrapper 的函数。找到被点击按钮的适当祖先,然后附加到所需元素之后:

$('.comment-box').click(function(e) {
    $('.new-topic-wrapper').show().insertAfter($(this).closest('.single-comment-wrapper').find('.comment-bottom'));
});

参见:https://codepen.io/anon/pen/broyzo

关于javascript - 如何使用 HTML 中存在的相同表单出现在页面的不同位置 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45673023/

相关文章:

javascript - 悬停时显示选项卡式内容

javascript - 帮助在js中制作这个正则表达式

jquery - REM 作为大众响应式 CSS 站点

javascript - 如何使文本框增长到其父div的宽度

javascript - 使用 JS,是否可以阻止加载 HTML 中静态定义的图像?

javascript - 在按钮 onclick 中创建动态文本框并将数据保存到数据库

javascript - 使用 PHP 在 javascript 函数中检索 json

javascript - 在 Opera/Firefox 中使用 JPlayer 打开 mp4 视频

javascript - 防止 .mouseout 事件执行

javascript - 使用@Material-UI 标签作为导航栏