Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Помогите настроить меню


Автор: KonstRuctor 19.12.2007, 03:32
Привет всем!
Юзаю отличное меню: http://www.dynamicdrive.com/dynamicindex1/slashdotmenu.htm
Пишу в head:
Код

<script type="text/javascript" src="sdmenu/sdmenu.js"></script>
<script type="text/javascript">
// <![CDATA[
var myMenu;
window.onload = function() {
        myMenu = new SDMenu("my_menu");
        myMenu.init();
};
// ]]>
</script>

У меня происходит конфликт с моим <body onload="MM_preloadImages(.......);">
Если все из тэга <body> убрать -- меню пашет отлично!
Я однажны подключал функцию lightbox(), там тоже был конфликт с MM_preloadImages.
Решался конфликт добавлением в <body onload="MM_preloadImages(.......); вот сюда"> некой функции.
Что-то туплю, ничего не придумать, как меню подключить.
Хелп.

Автор: Ghirik 19.12.2007, 11:50
Ну дак и запишите в body - <body onload="MM_preloadImages(.......); ваша_функция()">

А функцию просто объявите, т.е. не так:

Код

window.onload = function() {
        myMenu = new SDMenu("my_menu");


а так:
Код

function ваша_функция() {
        myMenu = new SDMenu("my_menu");

Автор: ksnk 19.12.2007, 11:56
решения 
- перенести в конец текста инициализацию меню... Куда-нибудь непосредственно перед </body>
- можно заменить window.onload=... на конструкции addEventlistener|attachEvent, есть много примеров как их употреблять кроссбраузерно...
- если употребляется какой-нибудь prototype/jQuery/... ets. - заюзать их возможности...

Автор: KonstRuctor 19.12.2007, 12:35
Цитата(Ghirik @  19.12.2007,  11:50 Найти цитируемый пост)
Ну дак и запишите в body - <body onload="MM_preloadImages(.......); ваша_функция()">

Помогло! Спасибо!

Автор: Ghirik 19.12.2007, 12:55
Цитата

window.onload=... на конструкции addEventlistener|attachEvent

ksnk, а это ещё зачем городить? На кой бес толкать DOM где не поподя? window.onload поддерживается всеми браузерами.

Автор: ksnk 19.12.2007, 13:01
Ghirik, Это городят для того, чтобы какой-нибуть ДримВейвер не вставил вот такой вот код, как у тредстартера в window.onload и не пришлось потом вот так вот удивляться smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)