我不太了解在jquery中使用stop()元素。 在此示例中,我尝试在用户启动myfunction函数时打开div(例如,通过单击触发器) 但是如果你点击几次,#mydiv无论如何都会消失,而不是等待3秒,因为它在你第一次点击后关闭了3秒。
function myfunction(hello)
{
$( "#mycontener" ).html( hello );
$( "#mydiv" ).stop( true, true ).slideDown( 250, function() {
setTimeout(function() {
$("#mydiv").slideUp( 250 );
}, 3000);
});
};
足够清楚了吗? 感谢
答案 0 :(得分:1)
您需要清除超时以防止在将来的呼叫中发生超时。像这样:
(function () {
var handle;
function myfunction(hello) {
clearTimeout(handle);
$("#mycontener").html(hello);
$("#mydiv").stop(true, true).slideDown(250, function () {
handle = setTimeout(function () {
$("#mydiv").slideUp(250);
}, 3000);
});
}
window.myfunction = myfunction;
})();