2009-08-01 84 views
0

當用戶在Firefox下使用下例中的表格行或錨點時無意中雙擊,Grow效果停止並且頁面變得不可用。有關如何強制FF忽略雙擊的任何建議?我嘗試使用Prototype的Stop.event,但似乎沒有幫助。使用Script.aculo.us禁止雙擊

<table border=1> 
<tr onclick="Effect.Grow('floater');"> 
    <td>Some Text</td> 
    <td><a href="#" onclick = "Effect.Grow('floater');return false;">1</a></td> 
    <td><a href="#" onclick = "Effect.Grow('floater');return false;">2</a></td> 
</tr> 

</table> 

<div id = "floater" style="display:none;width:100%;height:100%;background-color:red"> 
<a href="#" onClick="Effect.Shrink('floater');return false;">close floater</a><div> 

回答

2

問題是,script.aculo.us或Prototype處理雙擊爲正常點擊,第二次觸發Grow效果並破壞元素的位置。 用一個簡單的補丁(見下文)scriptaculous.js的(1.8.2),我得到了它的工作,但它更是一個快速和骯髒的修復,爲您的具體問題:

760,763d759 
< if(element.growing){ 
< return; 
< } 
< element.growing=true; 
829d824 
<    element.growing=false; 
+0

非常感謝這個答案。雖然我遇到了麻煩,但我懷疑這是因爲我太無知,無法正確讀取修補程序中的這些行號。 「829d824」是指在829或824處添加什麼?再次,我真的很感激它。 – Judson 2009-08-19 11:16:59

0

我沒有用script.aculo.us,所以我不能用實際的代碼幫助,但它應該是相當簡單的做到以下幾點。當onClick被觸發時,您應該在開始收縮之前從錨點移除事件。一旦這個效果完成,你再次將事件添加到錨點。

+0

感謝。不過,我還沒有在Prototype中發現任何東西。有很多方法可以從DOM中刪除對象等,但不包括事件(至少我可以找到)。 – Judson 2009-08-02 11:48:27