можно ли на объект повесить два события одновременно?
...например, при наведении мышкой на этот текст фон страницы поменяется:
<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, время: 13:13. |