![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| newProgrammer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 19.11.2008 Репутация: нет Всего: нет |
Здравствуйте. Помогите, пожалуйста, новичку в программировании. Мне нужно сделать так чтобы при наведении мышью на LI, менялся цвет border у IMG. Делаю так:
, но у меня ничего не выходит :( А в чем дело никак не разберусь... Если убрать обработчик onmouseover с функцией, то все работает: все border картинок становятся белыми; ну а мне нужно. чтоб границы меняли цвет только при наведении мышью. Заранее благодарю. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
|
|||
|
||||
| newProgrammer |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 19.11.2008 Репутация: нет Всего: нет |
bars80080, огромное тебе спасибо. Работает!
Вот только хотелось бы еще понять чем твой скрипт принципиально отличается от моего. То есть отличие это я вижу. Ты обращаешься к LI через this. Мне интересно почему нельзя обратиться к это элементу через индекс массива, в котором он находится (el[i]). У меня так работает:
А так уже нет:
Не знаешь почему так? |
||||||||
|
|||||||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 44 Всего: 315 |
потому что надо размышлять исходя из наличия третьего измерения - то бишь времени. во загнул...
ты прописываешь событие элементу, следовательно, на момент наведения мыши никаких el[i] не будет. будет вызвана функция в которую надо передать указатель на объект. раз нам надо взять тот самый объект, на который навели мышь - значит достаточно this во-вторых, лучше использовать вынесенные функции, т.к. это универсальнее и легко корректируется впоследствии под конкретные задачи. меньше правок, меньше усложнённого кода в-третьих, по поводу всё того же <li>MENU</li> как точно выразить не знаю, но постараюсь. когда ты работаешь с неким набором объектов, то надо стараться, чтобы в нём было как можно меньше исключений. грубо говоря, набор одинаковых объектов - он до тех пор набор, пока объекты одинаковы. любое исключение в геометрической прогрессии усложняет систему. в этом конкретном случае удалось это обойти, благодаря тому, что исключительный элемент торчит в самом начале. а если бы он был в середине? тогда нам пришлось бы делать проверку с условием if(), который бы проверял скажем существование внутренних нодов. а операция, насколько я понимаю не слишком быстрая. умножаем это на количество <li> - получаем (усложнение*5). а если их не 5? (уверен, что не пять). насколько в итоге замедлится скрипт? что сложного в данном случае вынести MENU за пределы <ul>? тем более не понимаю, ведь это заголовок и он должен стилистически отличаться от пунктов. во всяком случае, минус здесь очевиден. каждый раз сталкиваясь с этим скриптом, придётся соображать, а почему i = 1, а не 0. а ведь код будет находится далеко от места разметки... вот такие пироги о "незначительных" ньюансах |
|||
|
||||
| newProgrammer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 19.11.2008 Репутация: нет Всего: нет |
Спасибо тебе, bars80080, еще раз. Теперь мне все более или менее понятно.
А насчет первого LI ты прав. Вынесу его из списка в H1. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |