2009-08-01 85 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