隐藏 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]的主要内容,如果未能解决你的问题,请参考以下文章
带有 JQuery 的 Rails 5:带有显示和隐藏 JQuery 切换的表单最初会显示,但在我刷新页面后会隐藏起来