Помогите новичку с фукцией
Привет коллеги! :)
Это мой первый пост на этом интересном форуме. Не нашел ветку "Для новичков, чайников, начинающих" поэтому пишу сюды. Пишу выпадающее меню и тут непонятка возникла над которой сижу 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, время: 13:29. |