5

我在使用 jquery 悬停事件时遇到问题。我已经减少了这个问题。您可以在此处找到工作演示。在 IE、FF、Opera 和 Chrome 中移动鼠标后,我可以重现这一点。

我在鼠标悬停事件中使用排队动画。大约 1% 的时间, td 元素的颜色会#0f0在鼠标离开 td 之后留下。这不应该。mouseout 事件应该保证最终所有的 tds 在#00f经过一段时间后返回。

更新 2:

我现在已经尽可能地减少了这个。根本没有使用鼠标事件。它开始在 Opera 中运行得更好,但现在 IE 是一个完整的集群。

无论如何,我正在使用一个按钮来触发它:

function ani() {
    $('td')
        .stop()
        .animate({backgroundColor: '#0f0'}, 3000)
        .animate({backgroundColor: '#00f'}, 3000);
}

在这里看到它。

更新 [n + 1]:

我就是不能不管这个。我已经确定动画实际上正在发生。它只是没有自动化背景颜色。我通过添加文本和统一地为背景和前景设置动画来做到这一点。在正常情况下,一旦开始动画,您就永远不会看到文本,但有时背景会“被遗忘”,有时前景会被“遗忘”。这向我表明,一个 jquery 动画实际上正在发生,但它只是没有为它被指示的所有属性设置动画。对于好奇的人,请在此处查看它的实际应用。(警告:IE 对此感到非常难以接受)

好的,现在去玩一些视频游戏。

4

1 回答 1

2

我不明白你是如何得到你的 1% 的数字的。我不确定您看到的是什么行为,但在 FF3 和 IE8 中,我得到了这个丑陋的非法属性值错误,如下所示:http: //dev.jqueryui.com/ticket/4251。更相关的是,其中有好几十个并没有改变颜色,即使改变为简单的单色动画也是如此。

在 jquery.color.js 和 FF3 和 IE8 中修复该行就像一个魅力,虽然 IE8 是白屏,但它最终会恢复。

jQuery 非常适合管理 DOM,但不太适合效果。以我的经验,UI 的东西使用起来很痛苦,而且总是有问题。不过,框架本身一直对我很好。

于 2009-09-10T03:39:03.280 回答