我正在嘗試在jquery中創建一個菜單面板,除了一個問題外,它們都是完整的。當我將鼠標懸停在鏈接上時,它會顯示一個黑色面板,我希望只有當鼠標不在黑色面板區域時才能隱藏該面板。目前,即使我在黑盒子裏,它也會淡出。JQuery MouseOut事件問題
下面是腳本,您可以通過點擊預覽鏈接有看到的預覽,並有編輯過:
這應該是一個非常簡單有經驗的JQuery的編碼器,我沒有玩過這麼多,所以無法弄清楚。
感謝
我正在嘗試在jquery中創建一個菜單面板,除了一個問題外,它們都是完整的。當我將鼠標懸停在鏈接上時,它會顯示一個黑色面板,我希望只有當鼠標不在黑色面板區域時才能隱藏該面板。目前,即使我在黑盒子裏,它也會淡出。JQuery MouseOut事件問題
下面是腳本,您可以通過點擊預覽鏈接有看到的預覽,並有編輯過:
這應該是一個非常簡單有經驗的JQuery的編碼器,我沒有玩過這麼多,所以無法弄清楚。
感謝
當您只提供一個懸停參數時,它將其用於鼠標輸入和鼠標離開。
您應該使用懸停而不是鼠標事件。
第一次調用懸停時,提供一個空白選項作爲第二個參數。
第二次調用懸停時,提供空白函數作爲第一個參數。
這可以防止對同一功能進行多次調用。
我會說使用mouseenter和mouseleave事件來防止額外的參數,但由於某種原因,jsbin並不認爲它是一個函數。
你應該移動的div#panel_1,#panel_2,UL#菜單裏 內部#panel_3,當你在DIV你還是在裏,如果你申請懸停裏,而不是一個。 其他方法是存儲塊的可見性並對其進行管理。
http://jsbin.com/adofe/3/edit 使用懸停似乎工作 – 2010-03-05 14:17:54
還是同樣的問題:(你改變什麼了 – Sarfraz 2010-03-05 14:22:17
我檢查代碼的http:// jsbin。 com/adofe/8 /編輯使用每個和右懸停方法(2功能) – 2010-03-18 14:51:53
首先,爲什麼不把這兩個放在CSS中作爲「起點」?
$('div[id*="panel"]').hide();
// make the panels absolute positioned
$('div[id*="panel"]').css('position', 'absolute');
其次,如果你只是將鼠標移到東西反反覆覆,你會得到一個:在line
堆棧溢出25個
網頁錯誤的詳細信息
用戶代理:Mozilla的/ 4.0(兼容; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; MDDR; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0。0) 時間戳:星期五,2010 3月5日14時21分26秒UTC
消息: '的GUID' 爲空或不是對象 行:25 字符:10976 代碼:0 URI:http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js
消息: '未定義' 是空或不是對象 行:21 字符:560 代碼:0 URI:http://jsbin.com/js/render/edit.js
消息: '未定義' 是空或不是對象 線:21 字符:560 代碼:0 URI:http://jsbin.com/js/render/edit.js
消息: '未定義' 是空或不是對象 行:21 字符:560 代碼:0 URI:http://jsbin.com/js/render/edit.js
第三,你有
var link_rel = null;
然後在後面的代碼分配相同名稱的新變量:
var link_rel = $(this).attr('rel');
也
var pos = $(this).offset();
它獲取每個懸停發生時間重新分配看到。
這與元素的嵌套(以及面板在鏈接上的位置)似乎導致了.hover事件管理的問題。
jQuery 1.2。6沒有'mouseenter'和'mouseleave'的快捷函數,但你仍然可以像這樣使用它們:'$('selector')。bind('mouseenter',function(){})''而不是使用懸停和空功能。 – 2010-03-05 16:34:42
@bmac:很好,謝謝你的幫助,而不是有用的信息:) – Sarfraz 2010-03-05 16:50:47