2010-06-10 104 views
1

我有一個菜單,當用戶選擇一個鏈接時,切換爲。菜單有不同顯示和隱藏動畫附加,並且我想要阻止在動畫運行時切換。下面的代碼片段工作,但如果鏈接被點擊兩次快速翻轉的切換狀態(即如果用戶點擊該鏈接很快兩次,下一次點擊就會觸發同樣的操作):暫時禁用jQuery切換

<a href="" id="button">Menu</a> 
<div id="menu">...</a> 

<script> 
$("#button").toggle(
    function (e) { 
     if $("#menu").is(":animated")) return false; 
     $("#menu").show("drop", {}, "slow"); 
    }, 
    function (e) { 
     if ("#menu").is(":animated")) return false; 
     $("#menu").hide("bounce", {}, "slow"); 
    } 
); 
</script> 

哪有我阻止切換狀態切換?

謝謝。

+0

你不應該繼續編輯的問題,做一個適用的例子,當第一次發佈:) – 2010-06-10 19:05:53

+0

對不起!實際的腳本非常大,我想提高可讀性。 – 2010-06-10 19:09:42

回答

2

使用.click(),並檢查元素click處理程序的狀態,使用:not():animated:visible選擇,像這樣:

$("#button").click(function() { 
    var menu = $("#menu:not(:animated)"); 
    if(menu.is(":visible")) menu.hide("bounce", {}, "slow"); 
    else menu.show("drop", {}, "slow"); 
}); 

這不依靠國家,這是一個更簡單的:)

+1

尼克又做到了! – 2010-06-10 19:05:39

+1

@Mark Schultheiss:問題發生了變化,但正在更新... – 2010-06-10 19:06:09

+1

嗨,尼克。對不起,我忘了提及我正在運行不同的節目並隱藏動畫。任何方式來增加對此的支持? – 2010-06-10 19:07:16