私はJavaScriptに比較的慣れていないので、私に対してそれを保持してください。
ユーザーがベースメニューからサブメニューに到達するのに少し時間を与えるコードが少しあります。私の問題は、コードが奇妙な順序で実行され続けることです。
コードは次のとおりです。
function onFocusOut() {
var tester = 0;
setTimeout(function(){menuReset(tester)},1000);
}
function menuReset(tester) {
var hoverCheck = function (event) {
alert("#navBase a has focus"); //is fired, but to late...
var tester = event.data.varTester;
var tester = 1;
};
jQuery('#navBase').on('mousemove', 'a', { varTester: tester }, hoverCheck);
jQuery('#navBase').off('mousemove', 'a', { varTester: tester }, hoverCheck);
alert(tester); //This keeps firing first, before the alert in hoverCheck
if(tester == 1){
alert("tester = 1");
return;
}
else {
jQuery('#navBase ul').hide();
jQuery('#navBase').css({'width': ''});
jQuery('#navBaseAnchor').css({
'width': '', 'color': '',
'font-size': '',
'border-bottom-style': '',
'border-bottom-width': '',
'border-bottom-color': ''});
tester = 0;
}
}
hoverCheck関数が実行される前に(「テスター」を1に設定する必要があります)、その関数内でアラートを発生させる前に、「テスター」が0であるというアラートを受け取り続けます。
誰かが私が間違っていることを教えてもらえますか?