scriptaculous + генерация страницы

rasfast

Новичок
scriptaculous + генерация страницы

Доброго времени суток!

Начитался про scriptaculous, пытаюсь применять, не очень получается :(
Описание: есть список заголовков новостей, при нажатии на заголовок хочется красиво показать полный текст. Т.е. при нажатии на заголовок новости сделать BlindUp уже развернутой новости, загрузить текст выбранной новости через Ajax, и сделать для нее BlindDown.

Так вот если пытаюсь все эти функции подряд писать - такая мешанина получается, ужас. Я так предполагаю, должны быть какие-то механизмы синхронизации, чтобы эффекты последовательно шли друг за другом, и плюс к тому не опережали подгрузку контента из аякса.

Буду премного благодарен за советы/ссылки!
 

Terard

Новичок
Есть множество параметров заключенных в фигурные скобки практически для каждого эффекта, в том числе и параметры queue, onComplete, onSuccess и т.д. и т.п. Остается только логически расставить эффекты в хронологическом порядке.

Кстати, документация хоть и скудненькая но все таки есть на wiki.script.aculo.us
 

rasfast

Новичок
ок, спасиба, нашел!

еще такой вопрос: а как передать параметр в функцию onComplete или другие подобные? там вроде только название передается.

т.е. хочу сделать что-то типа такого:
PHP:
function itemChange(element_id)
{
		new Ajax.Updater('item', url,	{method: 'get', parameters: params, onComplete: itemBlind});
}

function itemBlind()
{
		//вот главная проблема! хочу вызвать эффект для того элемента, который был обновлен аяксом.
		Effect.BlindDown('item' + element_id);
}
 

Terard

Новичок
Вполне логичный вопрос. Сам с этим сталкивался.

Вместо того чтобы создавать отдельную функцию можно эту функцию прописать прямо в параметре onComplete. Точный синтакс не помню но приблизительно так:

PHP:
function itemChange(element_id)
{
        new Ajax.Updater('item', url,    {
                                     method: 'get', 
                                     parameters: params, 
                                     onComplete:  function(element_id)
                                                            { 
                                                             // код вашей функции itemBlind 
                                                             };
                                                         });
}

Удачи
 
Сверху