【问题标题】:Animate() not work when I have mouseover event当我有鼠标悬停事件时,Animate()不起作用
【发布时间】:2025-12-15 06:50:01
【问题描述】:

我有contextMenu 的这段代码,当删除行时会为行的颜色设置动画,但是当我将mouseoutmouseover 部分添加到代码中时,已删除行的颜色不再改变:

$(function () {
$('.users').contextMenu({
selector: 'tr',
callback: function (key, options) {
    if (key == 'delete') {
        if (confirm(" Are you sure?")) {
            $.post("../Actions/Delete.ashx", { type: "user", id: $(this).attr('id') });
            $(this).animate({ backgroundColor: '#FF80FF' }, 1000);
        }
    }

},
items: {
    "edit": { name: "edit" },
    "delete": { name: "delete" }
}
});
//newly added part
$('tr').mouseover(function () {
    $('td', this).animate
({ backgroundColor: "#80FF00" }, 300);
});

$('tr').mouseout(function () {
    $('td', this).animate
({ backgroundColor: "white" }, 300);
});
//till here
});

删除确认后我在控制台中看到此错误:

[13:08:10.282] 找不到元素@localhost:1299/Actions/Delete.ashx:1

我哪里错了?

【问题讨论】:

  • @Pete 我的鼠标悬停在动画上做动画,但在 confirm 动画之后不会改变颜色。所以我认为这不是重复的。

标签: jquery jquery-plugins jquery-animate mouseevent background-color


【解决方案1】:

尝试改用mouseenterstop() 方法:

{ 动画颜色,我认为你需要包含一个支持它的插件,如 jquery UI}

$('tr').mouseenter(function () {
    $(this).find('td').stop().animate({
        backgroundColor: "#80FF00"
    }, 300);
}).mouseout(function () {
    $(this).find('td').stop().animate({
        backgroundColor: "#ffffff"
    }, 300);
});

【讨论】:

  • 我有 jQuery 颜色插件。
  • 好的,你应该更具体地说明“不工作”是什么意思?没有颜色变化,对吧?顺便说一句,设置一个 jsfiddle 让我们看看发生了什么
  • 是的;没有颜色改变。我不是 jsfiddle 的成员。请稍候。
  • jsfiddle.net/majidgeek/6uwTj 请分叉。我不知道如何在小提琴中添加jquery.contextMenu.jsjquery.color-2.1.2.min.js
  • 控制台有错误吗?您使用的是哪个上下文菜单插件?
最近更新 更多