Невозможно установить видимость: скрыто через JavaScript - PullRequest
2 голосов
/ 11 ноября 2011

У меня возникли некоторые проблемы, когда я обдумываю эту штуку, поэтому я подумала, что это может помочь опубликовать это здесь.Вот и все.

Что у меня есть: 5 разных изображений в 5 разных ячейках таблицы + скрипт, который я опубликую ниже.

Что я хочу: использовать javascript's ...

document.GetElementById("image ID").style.visibility='visible/hidden'

... по истечении заданного времени, но вместо идентификатора изображения есть строка, которая получает идентификатор изображения, и до того, как кто-либо скажетничего, я не использую "" для строки, которая находится внутри ().Что-то вроде ...

var n=1;
function picID() {    
pictureID="pic"+n;
n=n+1;
}

... и таким образом, каждый раз, когда вызывается эта функция, мы получаем идентификатор элемента "pic1", "pic2", "pic3"и т. д.

В чем моя проблема: проклятая вещь не сработает.Стиль изображения остается таким же, как я определил в теге img.(style="visibility:hidden")

Все идентификаторы изображения находятся внутри тега img, как и должно быть.

Вот весь код:

<script>
var m=1;
        function Show() {
        if (m==6) {m=1;}

    feat="feat"+m;
        **document.getElementById(feat).style.visibility="visible";**
    m=m+1;
    setTimeout('Show()', 3000);
    }
window.onload = Show;
</script>

<script>
var k=1;    
    function Hide() {
    if (k==6) {k=1;}

    feate="feat"+k;
        **document.getElementById(feate).style.visibility="hidden";**
    k=k+1;
    setTimeout('Hide()', 3000);     
    }

window.onload = Hide;
</script>

Я разделил код, чтобы его было легче заметить.Из того, что я видел, единственная проблема - жирная линия в коде.Я протестировал все остальное, заменив document.getElementById на document.write, так что я вижу, что строка с пользовательским идентификатором работает нормально.Это.А также все остальное.

Есть предложения?Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2011

Этот код будет продолжать работать в цикле.потому что setTimeOut () вызывается каждый раз.Должен быть случай, когда он не вызывается, например, если m <6, вызовите его, а не </p>

0 голосов
/ 11 ноября 2011

Попробуйте установить k = 0;вместо k = 1;

Похоже, когда вы загружаете страницу, у вас есть функции show () и hide (), работающие на одном и том же элементе.Выполнение выше приведёт к запуску hide () для элемента ДО элемента, на котором работает show ().

...