使用Script.aculo.us禁止双击

时间:2009-08-01 11:03:35

标签: javascript javascript-events prototypejs

当用户使用Firefox无意中双击下面示例中的表行或锚点时,“生成”效果将停止,页面将变为不可用。有关如何强制FF忽略双击的任何建议?我尝试使用Prototype的Stop.event,这似乎没有帮助。

<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 个答案:

答案 0 :(得分:2)

问题是script.aculo.us或Prototype处理双击作为普通点击,第二次触发Grow效果并破坏元素的定位。 使用scriptaculous.js(1.8.2)的一个简单补丁(见下文),我得到了它的工作,但对于你的具体问题,它更像是一个快速和肮脏的修复:

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

答案 1 :(得分:0)

我没有使用过script.aculo.us,所以我对实际的代码无能为力,但执行以下操作应该相当简单。当触发onClick时,您应该在开始收缩之前从锚点中删除该事件。完成此效果后,再次将事件添加回锚点。