Помогите новичку с фукцией
Привет коллеги! :)
Это мой первый пост на этом интересном форуме. Не нашел ветку "Для новичков, чайников, начинающих" поэтому пишу сюды. Пишу выпадающее меню и тут непонятка возникла над которой сижу 2ой день. Итак суть... функция изменения картинки плюсика и минусика так почему-то не пашет: var flag=false function imgchange(which) { if (flag) document.all.which.src = "plus.png" else document.all.which.src = "minus.png" flag = !flag }; А если задать явно var flag=false function imgchange(which) { if (flag) document.all.img2.src = "plus.png" else document.all.img2.src = "minus.png" flag = !flag }; РАБОТАЕТ Вызываю так <td onclick="ShowOrHide('tab2'); imgchange('img2');"... <img id="img2"... Не подскажете что не так делаю, все перепробывал? |
Цитата:
Цитата:
1. В Вашем случае нужно писать document.all[which].src 2. Синтаксис document.all устарел. Используйте id и document.getElementById |
Спасибо.
в итоге получилось так: var flag=false function imgchange(id) { var item = null; if (document.getElementById) { item = document.getElementById(id); } else if (document.all){ item = document.all[id]; } else if (document.layers){ item = document.layers[id]; } if (!item) { } else if (item.src) { if (flag) { item.src = "plus.png"; } else { item.src = "minus.png"; } }else{ item.src = "plus.png"; } flag = !flag }; Знакомый говорит, что через jquery было бы проще. Я не шарю, может быть... |
} else if (document.all){ item = document.all[id]; } else if (document.layers){ item = document.layers[id];В этом нет необходимости. Браузеры без поддержки document.getElementById уже успешно вымерли. Можно написать так: var flag = false function imgchange(id) { var item = document.getElementById(id); if (!item) return; if (item.src) { item.src = flag ? "plus.png" : "minus.png"; } else { item.src = "plus.png"; } flag = !flag; }; |
Часовой пояс GMT +3, время: 05:10. |