【问题标题】:Hide a DIV [Rails]隐藏 DIV [Rails]
【发布时间】:2010-10-07 07:46:24
【问题描述】:

在 Javascript 中隐藏 DIV 很容易,但是有一些 Rails-y 方法可以做到吗?当然,我可以通过从部分 (.erb) 调用 Javascript 来考虑一些方法,但我宁愿根本不编写任何 Javascript。可能吗?

编辑:页面已加载,我想在 Ajax 调用之后隐藏 DIV (嗯,在),所以我在其中一个 @ 987654322@ 块。

【问题讨论】:

  • 您希望如何/何时隐藏它?在加载、事件之后或 ajax 调用之后?
  • 现在编辑问题
  • 感谢卢卡。为什么不好?请详细说明,以便我知道您是否有观点或只是在咆哮。
  • 谢谢卢卡,很有趣。我认为这些担忧中的大多数不适用于 Rails 生成的 Javascript。这个想法是,99% 的时间,你都在用标准库做标准的东西(原型和 Scriptaliciousousu 对早上 5 点的拼写感到抱歉)

标签: html ruby-on-rails ajax


【解决方案1】:

不太了解 Rails,但你能输出类似 style="display:none;" 的东西吗?进入 div 标签?

【讨论】:

  • 我也不知道 rails :),但我的感觉是我不能......我只能触摸 DIV 或 HTML 页面的其他 ID 可寻址部分中的内容。跨度>
  • 无赖 :( - 那时我可能会从工具箱中获取 jquery。
  • 不,默认情况下它具有原型和脚本(sp.),但即使使用纯 JS 也很容易。但现在有了这里(上面)的回复,我准备走了。
【解决方案2】:

从控制器渲染 RJS 更新:

respond_to do |format|
  format.html
  format.js { render(:update) { |page| page.hide('element_id') } }
end

您可以查找API 以获取其他 RJS 响应。

【讨论】:

  • 太棒了,反应很好。谢谢。
【解决方案3】:
render :update do |page|
    page.hide 'div_id'
end

您可以将其放入您的 respond_to 块或 RJS 模板中。

另一个有用的提示,使用相同的语法:

render :update do |page|
    page << 'arbitrary javascript code goes here.'
end

【讨论】:

    【解决方案4】:

    或者,在你看来:

    对于指定类的 div:

    <%= link_to_function "Toggle", "$('.some_div').toggle()" %>
    

    对于指定 ID 的 div:

    <%= link_to_function "Toggle", "$('#some_div').toggle()" %>
    

    (注意井号)

    将句点添加到特定于类的 div 并将哈希添加到特定于 id 的 div

    【讨论】:

    • 是的,纯 JS。隐藏一个div绝对是JS的领域;来回传递给服务器以隐藏 div 是多余的。
    • link_to_function 已在 Rails 4.0.2 中删除。
    【解决方案5】:
    <%= link_to_function "Toggle", visual_effect(:toggle_blind, "some_div") %>
    

    【讨论】:

      猜你喜欢
      • 2013-03-16
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 1970-01-01
      相关资源
      最近更新 更多