私がやろうとしているのは、ページが読み込まれると 3 秒後にボックスが表示され、何も起こらない場合は 3 秒後に部分的に非表示になることです。カーソルがボックスに入ると、タイムアウトがクリアされ、タイムアウトをクリアしているため、広告が非表示になることはありません。
問題は、マウスが離れて再び入るときに、以前のタイムアウトがまだ残っていることです。タイムアウトをクリアしようとしていますが、それでもボックスが非表示になります。何が問題になる可能性がありますか?
私のコードを参照してください: (JSfiddle リンク: http://jsfiddle.net/aK9nB/ )
var pstimer;
$(document).ready(function(){
setTimeout(function(){
showps();
pstimer = setTimeout(function() {
hideps();
}, 3000);
}, 3000);
});
$('#psclose').on('click', function(){
$('#postsearch-container').hide();
});
$("#postsearch-container").hover(
function () {
console.log("enter");
clearTimeout(pstimer);
console.log("cleartimeout");
showps();
},
function () {
console.log("leave");
clearTimeout(pstimer);
var pstimer = setTimeout(function(){
hideps();
} , 3000);
});
function showps() {
$("#postsearch-container").stop();
$('#postsearch-container').animate({
bottom: '0'
}, 'slow');
}
function hideps() {
$('#postsearch-container').animate({
bottom: '-115'
}, 'slow');
}