JS点击事件问题

请问前端大牛,我有个需求解决不了
image.png

是这样的,我在这个回复按钮上加了个点击事件,一点回复,就显示下面的发表评论的textarea框,然后取消评论就删除这个表单节点.这都没问题,
可问题是,这个文本框出来了我点回复还是无限增加文本框.
怎么让这个回复点击出了一次文本框之后就禁用? 然后点了取消评论之后再恢复追加文本框事件?

image.png

我是个后端,求前端大佬指点...

已解决 悬赏分:0 - 解决时间 2021-11-26 14:46
反对 0举报 0 收藏 0

回答6

最佳
  • @

    加一个节点 flag. 点击回复的时候加,先判断 flag 是不是 true,是的话 return;不是的话添加文本框.然后 flag 置为 true;当取消评论的时候将 flag 置为 false

    支持 0 反对 0 举报
    2021-11-26 00:57
  • @

    文本框出现时把回复按钮隐藏,取消回复再显示。

    支持 0 反对 0 举报
    2021-11-26 01:15
  • @

    添加一个变量 isReply 默认为 false 当点击回复的时候先判断 isReplay 是否为false 如果是置为 true 执行其他操作
    同理 在取消评论和提交评论的时候要判断是否为true 为true提交并将isReplay置为false

    支持 0 反对 0 举报
    2021-11-26 01:43
  • @

    处理这个的方法还是很多的,上面的答案都可行。最保险的方法还是在回调函数中先判断 #commentform 节点是否存在,不存添加,存在什么也不做 即可

    支持 0 反对 0 举报
    2021-11-26 02:08
  • @

    回调开头加上以下代码

    var form = document.getElementById('commentform')
    if(form) return;

    已经存在form了就不要加了

    支持 0 反对 0 举报
    2021-11-26 02:31
  • @

    我觉得没必要用JS去渲染表单,回复按钮和取消评论按钮用来负责控制表单是否显示就可以了

    支持 0 反对 0 举报
    2021-11-26 03:15