我對javascript比較新,所以請對它反對。在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;
}
}
現在我不斷收到警告說,「測試」爲0,則執行hoverCheck功能之前(這應該設置「測試」爲1),並觸發內警報該功能。
有人能告訴我我做錯了什麼嗎?
啊哈,謝謝。男人我已經在這個好幾天了,這其實是一個市長的退縮......你知道另一種方法來檢查一個元素當前是否被盤旋嗎? (特別是在整個子菜單亂七八糟的時候) – Marcelcolt 2012-08-08 08:38:36
嗯...我的意思是放棄當然。我嘗試過從mouseenter,mouseover,mousemove到mousein。而且我知道這不是重點... – Marcelcolt 2012-08-08 09:10:42