【问题标题】:jQuery slideDown() not animating (jquery-rails 3.0.4; jquery-ui-rails (4.0.5)jQuery slideDown() 没有动画 (jquery-rails 3.0.4; jquery-ui-rails (4.0.5)
【发布时间】:2013-10-18 21:45:25
【问题描述】:

我正在关注最新的《使用 Rails 4 进行敏捷 Web 开发》一书。在第 11 章(AJAX)中,本书指导我们在“create.js.erb”文件中使用以下代码:

if ($('#cart tr').length == 1) { $('#cart').show('blind', 1000); }

此代码导致#cart div 没有任何内容跳下。 1 秒后出现。没有滑动效果。

我尝试使用 slideDown();同样,但 div 会立即出现。出于好奇,我尝试了 slideUp();当 div 可见时。瞧。 div 向上滑动。

这似乎是一个 jQuery 错误,想知道是否有其他人遇到过这种情况,或者对我有什么建议。

谢谢。

【问题讨论】:

    标签: javascript jquery html css ruby-on-rails-4


    【解决方案1】:

    听起来您正在描述通过 ajax 加载内容的场景,其中切换不只是显示 dom 中已经存在的内容。是这样吗?否则,包装器中的内容是否也被隐藏了......也许是css?

    你试过 slideToggle();对于简单的 dom 显示/隐藏? ...如果它与 ajax 相关,您可能需要延迟触发切换,直到内容本身加载。

    【讨论】:

    • slideToggle() 确实有效。内容正在 DOM 中加载。你认为内容在动画之后加载到 DOM 中了吗?
    • 我想知道是不是这样,但如果 slideToggle 正在工作,那么它必须在该事件之前可用。如果一切顺利,别忘了接受。
    • 使用 slideToggle() 有效(div 向上或向下滑动),但 .show("blind") 不起作用(div 立即出现)。任何想法为什么?
    • 使用 show() 或 hide() 将做到这一点:立即显示或隐藏您的元素。它只是应用 display: block;或显示:无;到元素。 slideToggle() 包括显示/隐藏之前的动画。
    • .show("blind") 应该隐藏元素。无论如何,我在 pragprog 讨论论坛上找到了答案。在 CSS 中,表单 div 内联显示。我删除了这个,现在 show("blind") 工作。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多