Подавить двойной щелчок, используя Script.aculo.us - PullRequest
0 голосов
/ 01 августа 2009

Когда пользователь по неосторожности дважды щелкает строки или привязки таблицы в приведенном ниже примере с использованием Firefox, эффект «Рост» прекращается и страница становится непригодной для использования. Любые предложения относительно того, как заставить FF игнорировать двойные щелчки? Я пытался использовать Prototype's 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 ]

2 голосов
/ 18 августа 2009

Проблема в том, что script.aculo.us или Prototype обрабатывает двойной щелчок как обычный щелчок, запускает эффект Grow во второй раз и разрушает позиционирование элемента. С помощью простого патча (см. Ниже) файла scriptaculous.js (1.8.2) я получил его, но это скорее быстрое и грязное исправление для вашей конкретной проблемы:

760,763d759
<   if(element.growing){
<   return;
<   }
<   element.growing=true;
829d824
<                element.growing=false;
0 голосов
/ 01 августа 2009

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

...