он возвращает не один элемент, а массив из-за getParents()
и возможных других аналогично размеченных элементов, Fx.Slide требует, чтобы вы передали ему один элемент.
здесь он хотя бы частично работает при передаче первого элемента массива: http://www.jsfiddle.net/KFdnG/
однако, это неэффективно и им трудно управлять, если у вас длинный список элементов и вам нужен только конкретный слой контента, который вы хотите развернуть, и вы хотите, чтобы поиск на слое контента был более локальным.
как то так:
http://www.jsfiddle.net/KFdnG/4/
// store an instance into each content div and set initial state to hidden.
$$("div.widget_box_content_cont").each(function(el) {
el.store("fxslide", new Fx.Slide(el).hide());
});
$$('a.widget_minimize').addEvent('click', function(event) {
event.stop();
// can't use this.getNext() due to wrapper by Fx.Slide which does not have the instance.
this.getParent().getElement("div.widget_box_content_cont").retrieve("fxslide").toggle();
});
, который работает на разметке:
<div class="widget_box">
<div class="widget_box_content">
<a href="#" class="widget_minimize">link</a>
<div class="widget_box_content_cont">
some content
</div>
</div>
<div class="widget_box_content">
<a href="#" class="widget_minimize">link 2</a>
<div class="widget_box_content_cont">
some content 2
</div>
</div>
</div>
это также лучше, поскольку вы не будете создавать новый экземпляр класса Fx.Slide при каждом нажатии, но будете ссылаться на те, которые уже прикреплены к элементу.