2010-03-05 70 views
1

我正在嘗試在jquery中創建一個菜單面板,除了一個問題外,它們都是完整的。當我將鼠標懸停在鏈接上時,它會顯示一個黑色面板,我希望只有當鼠標不在黑色面板區域時才能隱藏該面板。目前,即使我在黑盒子裏,它也會淡出。JQuery MouseOut事件問題

下面是腳本,您可以通過點擊預覽鏈接有看到的預覽,並有編輯過:

http://jsbin.com/adofe/edit

這應該是一個非常簡單有經驗的JQuery的編碼器,我沒有玩過這麼多,所以無法弄清楚。

感謝

回答

2

當您只提供一個懸停參數時,它將其用於鼠標輸入和鼠標離開。

您應該使用懸停而不是鼠標事件。

第一次調用懸停時,提供一個空白選項作爲第二個參數。

第二次調用懸停時,提供空白函數作爲第一個參數。

這可以防止對同一功能進行多次調用。

我會說使用mouseenter和mouseleave事件來防止額外的參數,但由於某種原因,jsbin並不認爲它是一個函數。

+0

jQuery 1.2。6沒有'mouseenter'和'mouseleave'的快捷函數,但你仍然可以像這樣使用它們:'$('selector')。bind('mouseenter',function(){})''而不是使用懸停和空功能。 – 2010-03-05 16:34:42

+0

@bmac:很好,謝謝你的幫助,而不是有用的信息:) – Sarfraz 2010-03-05 16:50:47

0

你應該移動的div#panel_1,#panel_2,UL#菜單裏 內部#panel_3,當你在DIV你還是在裏,如果你申請懸停裏,而不是一個。 其他方法是存儲塊的可見性並對其進行管理。

+0

http://jsbin.com/adofe/3/edit 使用懸停似乎工作 – 2010-03-05 14:17:54

+0

還是同樣的問題:(你改變什麼了 – Sarfraz 2010-03-05 14:22:17

+0

我檢查代碼的http:// jsbin。 com/adofe/8 /編輯使用每個和右懸停方法(2功能) – 2010-03-18 14:51:53

1

首先,爲什麼不把這兩個放在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事件管理的問題。

+0

@Mark:解決方案是什麼?我解決了這一切,我只需要能夠隱藏黑盒子,當鼠標離開它的區域。謝謝 – Sarfraz 2010-03-05 14:39:00

+0

我剛回到你提供的鏈接,存在同樣的問題,你是怎樣「修復所有這些」的? – 2010-03-05 14:57:36

+0

我在我的電腦上本地做過。 – Sarfraz 2010-03-05 16:48:30