我对 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 函数(应该将“tester”设置为 1)并在该函数中触发警报之前,我不断收到“tester”为 0 的警报。
有人可以告诉我我做错了什么吗?