【问题标题】:is there an advantage of using button instead of a link?使用按钮而不是链接有什么好处吗?
【发布时间】:2011-12-09 12:43:41
【问题描述】:

我正在创建投票链接(赞、赞、收藏等)。

我一直在使用 RESTful rails 路由,我很乐意将 link_to 用于几乎所有的事情,包括非 GET 请求。 link_to 比 button_to 更容易设置样式,因为 button_to 引入了一个带有 submit 类型输入的整个表单,这似乎总是比使用 :method => :delete 或 :method => :post 做 link_to 更重。我唯一使用表单的时候是需要从用户那里收集数据,而我从不使用 button_to。

我去 youtube 看看他们如何设计投票按钮,他们实际上使用按钮。

 <button onclick=";return false;" title="I dislike this" type="button" class="end yt-uix-tooltip-reverse yt-uix-button yt-uix-tooltip yt-uix-button-empty" id="watch-unlike" data-button-action="yt.www.watch.actions.unlike" role="button" data-tooltip-text="I dislike this">
     <img class="yt-uix-button-icon yt-uix-button-icon-watch-unlike" src="//s.ytimg.com/yt/img/pixel-vfl3z5WfW.gif" alt="">
 </button>

从这个 sn-p 看来,他们只是将按钮用作图像精灵的容器。该按钮没有被表单标签包围,所以我猜有不显眼的 js 会在其他地方触发 HTTP POST。

Youtube 归谷歌所有,所以我猜他们的做法一定是最佳做法,是吗?

我知道在没有表单的情况下做一个按钮,没有直接写按钮标签的轨道方式,当我要做一些轨道没有提供给我的事情时,这总是让我三思而后行。

所以我的问题是,以 youtube 方式进行操作的技术优势(如果有的话)是什么?

【问题讨论】:

    标签: ruby-on-rails button hyperlink youtube


    【解决方案1】:

    都是关于degrading gracefully

    简单的链接不会在没有 javascript 的情况下发布表单。

    (好吧,这还不是全部,它也是语义,例如残疾人页面阅读器的兼容性等)

    【讨论】:

    • hmm...但是由于没有 js 就没有表单帖子,youtube 是否能够优雅地降级? (然后他们的按钮不会做任何事情) Point 注意到语义:即使没有绑定工作表单的功能,按钮也能更好地理解您正在更改某物的状态,而链接不应该这样做。但是我应该用 button_to 替换我所有的 link_to :method => :post 和 :method => :delete 吗?页面膨胀怎么办?
    • 没错。但是,在
    • 每当我需要更改某物的状态时,我最终都会用 button_to 替换 link_to。结果我不得不升级到 Rails 3.1,因为在 button_to 上有一个远程 => true 的 ajax 错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-18
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 2020-08-27
    • 1970-01-01
    相关资源
    最近更新 更多