詳細なツールチップを表示するためにjqueryのcluetipプラグインを使用しています。次の質問で説明されている問題があり、受け入れられた回答のアドバイスに従いました。
これは私が使用しているコードです:
if (opts.mouseOutClose) {
var closectip;
$cluetip.hover(function() {
clearTimeout(closectip);
},
function() {
$closeLink.trigger('click');
});
$this.hover(function() {
clearTimeout(closectip);
}, function() {
closectip = setTimeout(cluetipClose, 1000);
});
}
これは、マウスアウトの直後に手がかりのヒントを非表示にすることになっています。これは、手がかりのヒントを初めて表示してマウスアウトしたときに機能しますが、その後手がかりのヒントを表示すると、マウスアウトしていなくても1秒後にヒントが非表示になります。デバッグにより、次のコードが正しく機能していないことが明らかになりました。
$this.hover(function() {
clearTimeout(closectip);
}
これは、cluetip 要素に再びカーソルを合わせたときにタイムアウトが確実にクリアされるようにするためのものであり、1 秒後に非表示になることはありません。ただし、ホバー機能が実行されると、「closectip」タイムアウト変数は未定義です。
closectip
ホバーイベントからアクセスしてクリアできるように、タイムアウト変数をグローバルにするにはどうすればよいですか?