1

我目前正在学习 MVC3,并且在我的学习过程中一直在我的项目中添加几个 jQuery 脚本,试图同时学习。事情进展顺利,但在这种情况下,我似乎无法确切地弄清楚我必须做什么才能实现我想要的功能。

我在这个 Fiddle中创建了一个相关代码的示例,而不是将代码写在几个代码块中。

在我的代码中发生的是,当按下按钮时,消息 div 从左侧滑出,3 秒后它会再次滑开。如果用户在消息 div 滑出时将鼠标放在消息 div 上,则会添加一条消息。

这几乎是我想要的,除了一点点补充;当用户将鼠标放在消息 div 上时,我希望它保持打开状态,直到他们将鼠标移开,然后它会滑回,目前它在 3 秒后仍会滑开。

我已经尝试过移动.delay,将代码添加到mouseout()事件中,但是我对 jQuery 的了解几乎阻止了我在这里的进展。

谁能解释如何做到这一点和/或指出一些例子。

非常感谢。

4

2 回答 2

1

由于您在显示功能中调用 clear(因此延迟 3 秒),因此我建议使用以下 mouseover/mouseout 处理程序:

$("#messageWrapper").mouseover(function() {
    $("#testlabel").text("mouseover");
    $("#messageWrapper").css('width', 'auto');
    $("#messageWrapper .messageBox").text(something);
    $(this).clearQueue();
}).mouseout(function() {
    $("#testlabel").text("mouseout");
    clearMessages();
});

编辑过的小提琴: http: //jsfiddle.net/vypTA/7/ - 猜你可以调整清除延迟(将其作为arg或其他东西传递)

于 2012-09-19T11:50:39.657 回答
0

这是想要达到的目标吗?

$("#messageWrapper").mouseover(function() {
    $("#testlabel").text("mouseover");
    $("#messageWrapper").css('width', 'auto');
    $("#messageWrapper .messageBox").text(something);
    $("#messageWrapper").stop(); // added this line
}).mouseout(function() {
    $("#testlabel").text("mouseout");
    clearMessages(); // added this line
});
于 2012-09-19T11:45:52.723 回答