Почему эта функция не работает? - PullRequest
1 голос
/ 17 февраля 2011

Когда я нажимаю «проверить», размер кадра изменяется, но когда я нажимаю его снова, он не меняет свой размер до исходного

function dropdownResize(){

var down = 0;

        if(down == 0){
                parent.document.getElementById('frameMain').rows = '84,84,*';
                down = 1;
            }
        else{
                parent.document.getElementById('frameMain').rows = '84,30,*';
                down = 0;
            }


    }

<a onclick="dropdownResize()"> test</a>

Ответы [ 3 ]

10 голосов
/ 17 февраля 2011

Не работает, потому что down - это , определенный в рамках функции dropdownResize().Когда вызывается функция, down каждый раз сбрасывается на 0.

Что вы должны сделать: (обратите внимание, что это прямой ответ на ваш вопрос ивам, вероятно, следует больше узнать о область действия переменной , чтобы максимально предотвратить глобальные переменные)

var down = 0;
function dropdownResize(){
        if(down == 0){
                parent.document.getElementById('frameMain').rows = '84,84,*';
                down = 1;
            }
        else{
                parent.document.getElementById('frameMain').rows = '84,30,*';
                down = 0;
            }
    }
2 голосов
/ 17 февраля 2011

попробовать:

var down = 0;

function dropdownResize(){

        if(down == 0){
                parent.document.getElementById('frameMain').rows = '84,84,*';
                down = 1;
            }
        else{
                parent.document.getElementById('frameMain').rows = '84,30,*';
                down = 0;
            }


    }
1 голос
/ 17 февраля 2011

Я думаю, что down - это локальная переменная, и при каждом вызове функции она будет установлена ​​на 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...