マウスを移動するとプレビューを表示しようとしていますが、プレビューを表示しないようにします。現在、マウスを ".searchRecord"要素にすばやく移動させると、300ms後に表示され、setTimeout関数が終了する前に関数が呼び出されたときに「停止」します。プレビューがすべて表示されるまでカーソルを要素にとどめることができればうまく動作します。JS clearTimeoutは、関数の外にあるvarを設定しても機能しません。
変数を関数外に設定しましたが、別の場所で読み込んだのですが、リセットされません。私は少し困惑しています。
var timer;
$('.searchRecord').hover(function() {
$(this).children('.previewLoad').show();
var current = '#'+$(this).children('div').attr('id');
//slight delay before hover so they can select what they want
var timer = window.setTimeout(function(){
$(current).fadeIn('fast');
$(current).siblings('.previewLoad').hide();
}, 300);
}, function() {
window.clearTimeout(timer);
var current = '#'+$(this).children('div').attr('id');
previewTimeouter(current);
});
。 – Marc