隐藏 DIV [Rails]

Posted

技术标签:

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

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

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

【问题讨论】:

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

【讨论】:

以上是关于隐藏 DIV [Rails]的主要内容,如果未能解决你的问题,请参考以下文章

Rails f.check_box 隐藏/显示 JS

带有 JQuery 的 Rails 5:带有显示和隐藏 JQuery 切换的表单最初会显示,但在我刷新页面后会隐藏起来

如何使用jquery计算某个类的隐藏div的数量

尝试从 Rails 中的 URL 参数显示 DIV

在 URL 中隐藏锚标记 [参考:Rails 在 URL 中隐藏 #anchor 标记]

在 Rails 中隐藏按钮(Agile Web Development with Rails 书)