问一个前端的小白问题

2015-10-06 21:12:40 +08:00
 sensui7
我学 php 的, 现在打算做一个网站, 不如说页面上有一个按钮, 点击就出现一个输入框, 可以留言. 其中发送表单和显示最新的留言可用 ajax 实现.

那么点击一个按钮出现一个输入框, 这个功能是否是用 Js 给按钮绑定一个事件, 插入一个 dom 这样的方式实现的呢?

这是比较合理的方法吗? 假如页面上的互动元素很多是否需要分别给绑定事件呢?

我不太了解对于实际的比较成熟的项目, 前端页面是如何做的.
1789 次点击
所在节点    问与答
7 条回复
sneezry
2015-10-06 21:19:29 +08:00
这个其实用 CSS 就可以实现的,如果用 JS 的话通常是改 display ,隐藏就是 none ,显示就是 block 。
tinyhill
2015-10-06 21:20:57 +08:00
小白问题,建议先看 http://www.w3school.com.cn/index.html
will0404
2015-10-07 00:35:05 +08:00
第一个问题:是。当然也可以有别的办法。
第二个问题:合理,对于只有一个或者很少数的按钮需要绑定的话就这样就行,当然也可以像一楼说的那样,预先写好这段 html 隐藏,用 js 控制显示和隐藏就好了,不需要插入删除 dom ,比较普遍的做法是后者。
第三个问题:很多元素与这个弹出框互动,那你可能需要了解 javascript 事件委托,如果你用 jquery ,看看 delegate 的 API 也许有用。我还可以说出很多实现的方法,取决于你的前端有没有用框架,用什么样的框架了,但万变不离事件委托。
chairuosen
2015-10-07 00:50:49 +08:00
简单的 DOM 操作用 jQuery 或者原生 js 自己做。
复杂的 DOM 操作用 MVVM 框架做
sensui7
2015-10-07 22:07:21 +08:00
具体的这样的, 比如每一条留言都附带一个评论按钮, 所以无法预先设置一个隐藏的 dom, 就像 v2 的引用按钮, 点击任意一个留言的评论按钮,在下方出现一个评论框.
will0404
2015-10-07 23:50:59 +08:00
@sensui7 看你的问题估计你还没接触 angular 类似的框架 这样的 dom 操作 就用 js 写事件委托
sensui7
2015-10-08 17:29:36 +08:00
@will0404 谢了, 学框架感觉忒麻烦.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/225955

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX