Верхняя панель MooTools не отображается - PullRequest
0 голосов
/ 09 сентября 2009

Привет всем,

Я использую эту скользящую верхнюю панель с использованием mootools (для ориентации код в основном такой же).

Я хочу, чтобы он появлялся при загрузке страницы, значит, загружен index.html. Я добился этого, просто добавив соответствующий javascript в index.html:

<script type="text/javascript">
    window.addEvent('domready', function(){
    var mySlide = new Fx.Slide('top-panel');
    $('toggle').addEvent('click', function(e){
    e = new Event(e);
    mySlide.toggle();
    e.stop();
    });
    });
</script>

(Конечно, это тоже сама верхняя панель) Когда вы щелкаете ссылку на этой верхней панели, новая страница будет загружена в указанный div , а , а затем , верхняя панель должна быть скрыта.

Я думаю, вы можете сделать это, добавив

var mySlide = new Fx.Slide('top-panel').hide();

или

mySlide.hide(); 

в каком-то javascript. Я думаю, что это должно выполняться, когда ahah.js -javascript завершает загрузку содержимого в div, я попытался добавить как приведенный выше javascript, так и два варианта mySlide.hide () в ahah.js , (в ahahDone (), после последнего getElementById).

Используя эту настройку, я получаю следующий рендеринг. (Это происходит после нажатия на соответствующую ссылку, которая загружает контент из html-файла в div и щелкает ссылку «Еще (mehr)» в верхней части страницы, которая должна скользить вниз по верхней панели.) Но только кнопка, которая является Видимый всегда (дополнительная панель) скользит вниз и является видимым, фактическое содержимое панели не отображается.

Есть идеи? Было бы здорово, если бы вы могли оставить ответ с кратким объяснением.

Большое спасибо

1 Ответ

2 голосов
/ 09 сентября 2009

Это похоже на проблему с областью видимости. Вы объявляете mySlide внутри анонимной функции, и ее область действия будет ограничена этой функцией. Позже, когда нажимается $ ('toggle'), инициируемое событие выходит за рамки этой функции, поэтому у него нет доступа к mySlide.

Быстрое исправление (если вы не возражаете против использования глобалов) могло бы объявить var mySlide=null в основном javascript, чтобы у вас было закрытие, а затем изменить текущее значение var mySlide=new Fx.Slide(...) на mySlide=new Fx.Slide(..)

(или это может быть что-то совсем другое ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...