JS点击事件问题

清_浅
  • 263

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

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

image.png

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

回复
阅读 1.7k
6 个回答
✓ 已被采纳

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

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

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

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

回调开头加上以下代码

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

已经存在form了就不要加了

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

宣传栏