можно ли на объект повесить два события одновременно?
...например, при наведении мышкой на этот текст фон страницы поменяется:
<a href="http://www.mail.ru" onMouseOver="document.bgColor='#FFAACC'; return true">меняется фон страницы</a> А можно повесить на этот же текст-ссылку ещё и событие onMouseOver?? Я пробовал, не получилось,срабатывает только "последняя" функция может синтаксис неверный а может быть так в принципе нельзя?: <a href="http://mail.ru" onMouseOver="document.bgColor='#FFAACC' onMouseOut=document.bgColor='#00FF00'" onMouseOut="document.bgColor='#00FF00'"> меняется фон страницы</a> Подскажите, как поступить в данном случае? Не хотелось бы создавать отдельный текст для наведения мышки, отдельно для щёлканья, отдельно для увода мышки с текста... Все события хотелось бы на одном объекте размещать |
С ума сойти как вы были правы!!!
оказывается ошибка была в синтаксисе, надо было так: <a href="http://mail.ru" onMouseOver="document.bgColor='#FFAACC' " onMouseOut="document.bgColor='#00FF00' ">меняется фон страницы</a> "Может ли Ланцелот мечом убить дракона?" - "Может".... Но не Ланцелот И не мечом и не дракона и не убить... |
Лучше не размещать код прямо в тегах - это очень, очень плохо. Так же как атрибут bgColor.
А ошибка вот тут: <a onMouseOver="document.bgColor='#FFAACC' onMouseOut=document.bgColor='#00FF00'">...</a> Это все, как получается, один атрибут. Соответственно, MouseOver не срабатывает из-за синтаксической ошибки, а единственно правильно описанный MouseOut (последний) - срабатывает. |
Лучше не размещать код прямо в тегах - это очень, очень плохо.
а как же тогда размещать посоветуете? Через id?? А сам скрипт, получается, надо писать в конце страницы, перед </body>, чтобы DOM сформировался? |
Если объемы большие, лучше писать в отдельных JS-файлах.
Сейчас часто используется jQuery, там проблема с формированием DOM решается просто: запуск кода по событию готовности документа делается так: $(function() { //Код, который запустится после того, как все прогрузилось }) Без jQuery можно сделать примерно так (возможно, я ошибся в названии событий): if (window.addEventListener) window.addEventListener('load', loadHandler); else if (window.attachEvent) window.attachEvent('onload', loadHandler); else window.onload = loadHandler; //Переопределит все остальные обработчики, добавленные так function loadHandler() { alert('Страница загрузилась'); } |
Спасибо! Ваши ответы мне очень помогли
|
Часовой пояс GMT +3, время: 17:35. |