我想使用jquery創建一個下拉菜單,但即使它不應該關閉。setInterval/clearInterval下拉問題
我有一個訂閱了mouseenter事件的元素,鼠標進入元素,下拉菜單,啓動,一切似乎都沒問題。我下載到包含一些內容的列表元素的項目列表。我第一次改變這兩個元素,一切都按預期工作。所以我離開元素的鼠標事件被稱爲和在1000毫秒內列表不再可見。 第二次我打開「下拉菜單」似乎沒問題,但是如果我檢查列表,它會在我離開元素時消失。有些方式是合乎邏輯的,因爲每個元素(按鈕和列表)都訂閱了兩個事件:mouseenter和mouseleave。 Mouseenter提供了一個clearInterval,mouseout提供了一個setInterval。數據存儲在一個名爲tTimer的變量中,默認值爲0. 我真的不知道爲什麼會發生這種情況。繼承人從我的代碼snipplet:
var tTimer = 0;
var rmItemList = function(){itemList.remove(); clearTimeout(tTimer); }
$(this).bind("mouseleave",function(){ tTimer = window.setTimeout(rmItemList, 1000); });
itemList.bind("mouseleave",function(){ tTimer = window.setTimeout(rmItemList, 1000); });
$(this).bind("mouseenter",function(){ window.clearTimeout(tTimer); itemList.appendTo("body"); });
itemList.bind("mouseenter",function(){ window.clearTimeout(tTimer); });
您已經詳細描述了該場景,但是您是否仍然可以在http://jsfiddle.net上進行最小化演示? – Thomas 2010-10-28 09:21:08