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

+0

Посмотрите на Википедию для распространения diff: http://en.wikipedia.org/wiki/Diff – kanngard

0

Я не использовал script.aculo.us, поэтому я не могу помочь с фактическим кодом, но он должен быть достаточно просто сделать следующее. Когда onClick уволен, вы должны удалить событие с якоря перед началом сжатия. Как только этот эффект будет завершен, вы снова добавите событие в якорь.

+0

Спасибо. Тем не менее, я ничего не нашел в Prototype. Существует множество способов удаления объектов из DOM и т. Д., Но не событий (по крайней мере, я могу найти). – Judson