Плохой эффект при появлении и исчезновении элемента страницы

Я использую Ruby on Rails 3 и шаблон RJS (с Prototype) и пытаюсь проверить, соответствует ли HTML следующему

<div id="test_div_id">...</div>

имеет атрибут style="display: none. Если это так, чтобы отобразить это, я запускаю

page.visual_effect(:appear, "test_div_id", :duration => 0.5)

Что я хотел бы иметь, так это то, что после отображения div вышеуказанный page.visual_effect больше не должен запускаться, иначе у меня будет «плохой» эффект на интерфейсе, вызванный появлением и исчезновением div.


Следующий код работает

page.visual_effect(:appear, "test_div_id", :duration => 0.5) if page.show "test_div_id"

но я не знаю, хороший ли это подход...


person user502052    schedule 25.03.2011    source источник
comment
Как вы запускаете эффект?   -  person Shane Courtrille    schedule 25.03.2011
comment
@ShaneC - Да. Моя проблема возникает во второй (или более) раз, когда я запускаю приведенный выше код.   -  person user502052    schedule 25.03.2011


Ответы (2)


На самом деле не лучшее описание вашей проблемы, но обычно нужно определить идентификатор, скажем, «my_hidden_div_id», и удалить идентификатор в качестве обратного вызова примененного к нему эффекта.

person mark    schedule 25.03.2011
comment
Можете ли вы написать простой пример кода, как удалить идентификатор с помощью RJS? - person user502052; 25.03.2011
comment
Честно говоря, не очень люблю rjs, но насколько я помню: page['old_identifier'].className = 'new_identifier' - person mark; 25.03.2011

Если у вас есть настройка эффекта через jQuery, вы можете применить к нему one(), чтобы он запускался только один раз.

Однако было бы полезно получить более подробную информацию о том, как вы связываете вещи.

person Shane Courtrille    schedule 25.03.2011