V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sensui7
V2EX  ›  问与答

问一个前端的小白问题

  •  
  •   sensui7 · 2015-10-06 21:12:40 +08:00 · 1790 次点击
    这是一个创建于 3340 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我学 php 的, 现在打算做一个网站, 不如说页面上有一个按钮, 点击就出现一个输入框, 可以留言. 其中发送表单和显示最新的留言可用 ajax 实现.

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

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

    我不太了解对于实际的比较成熟的项目, 前端页面是如何做的.
    7 条回复    2015-10-08 17:29:36 +08:00
    sneezry
        1
    sneezry  
       2015-10-06 21:19:29 +08:00   ❤️ 1
    这个其实用 CSS 就可以实现的,如果用 JS 的话通常是改 display ,隐藏就是 none ,显示就是 block 。
    tinyhill
        2
    tinyhill  
       2015-10-06 21:20:57 +08:00
    小白问题,建议先看 http://www.w3school.com.cn/index.html
    will0404
        3
    will0404  
       2015-10-07 00:35:05 +08:00   ❤️ 1
    第一个问题:是。当然也可以有别的办法。
    第二个问题:合理,对于只有一个或者很少数的按钮需要绑定的话就这样就行,当然也可以像一楼说的那样,预先写好这段 html 隐藏,用 js 控制显示和隐藏就好了,不需要插入删除 dom ,比较普遍的做法是后者。
    第三个问题:很多元素与这个弹出框互动,那你可能需要了解 javascript 事件委托,如果你用 jquery ,看看 delegate 的 API 也许有用。我还可以说出很多实现的方法,取决于你的前端有没有用框架,用什么样的框架了,但万变不离事件委托。
    chairuosen
        4
    chairuosen  
       2015-10-07 00:50:49 +08:00   ❤️ 1
    简单的 DOM 操作用 jQuery 或者原生 js 自己做。
    复杂的 DOM 操作用 MVVM 框架做
    sensui7
        5
    sensui7  
    OP
       2015-10-07 22:07:21 +08:00
    具体的这样的, 比如每一条留言都附带一个评论按钮, 所以无法预先设置一个隐藏的 dom, 就像 v2 的引用按钮, 点击任意一个留言的评论按钮,在下方出现一个评论框.
    will0404
        6
    will0404  
       2015-10-07 23:50:59 +08:00   ❤️ 1
    @sensui7 看你的问题估计你还没接触 angular 类似的框架 这样的 dom 操作 就用 js 写事件委托
    sensui7
        7
    sensui7  
    OP
       2015-10-08 17:29:36 +08:00
    @will0404 谢了, 学框架感觉忒麻烦.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3492 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:50 · PVG 18:50 · LAX 02:50 · JFK 05:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.