我正在使用jQuery在hover()上设置高度变化动画。
悬停时,它会应用.hover类,点击后,它会切换.expanded类。它主要是有效的,有适当的动画,但只是在第一次之后。第一次悬停将完全跳过动画。
我很难过 - 这是令人讨厌的代码:
$('#expandingbox').hover(
/*on mouseenter, if not expanded, add hover class*/
function() {
if (!$(this).hasClass("expanded")) {
$(this).stop(true, true).addClass("hover", "slow");
}},
/*on mouseout, if not expanded, remove hover class*/
function() {
if (!$(this).hasClass("expanded")) {
$(this).stop(true, true).removeClass("hover", "slow");
}
}).click(function() {
$(this).toggleClass("expanded", "slow");
});
我找到了添加$('#expandingbox')的地方。触发器('mouseout')将解决这个问题,但它对我不起作用。 这是一个重现问题的例子: http://jsfiddle.net/Qc42v/
更新 提交了一张票,结果证明这是一个jQuery错误。相同的代码适用于jQuery 1.5(以及最新版本的jQuery UI)。
答案 0 :(得分:2)
这可能是一个合法的jQuery UI错误。事先添加一些随机类似乎可以解决它。检查:http://jsfiddle.net/Qc42v/9/
基本上就是这样:
/*on mouseenter, if not expanded, add hover class*/
function() {
if (!$(this).hasClass("expanded")) {
$(this).addClass("xxx");
$(this).stop(true, true).addClass("hover", "slow");
}},
如果这看起来太令人讨厌了,可能只是使用基本的animate()函数?有人应该肯定提出一个错误:{