为什么这个功能不起作用?

时间:2011-02-17 10:12:43

标签: javascript html scope

当我点击“测试”到框架调整大小但当我再次点击它时它不会调整回原来的大小

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 个答案:

答案 0 :(得分:10)

它不起作用,因为down 在函数dropdownResize() 的范围内定义。调用该函数时,down每次都会重置为0.

您应该做什么: (请注意,这是您问题的直接答案,您应该了解有关variable scope的更多信息,以便尽可能多地防止全局变量尽可能)

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 :(得分:2)

尝试:

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 :(得分:1)

我认为down是一个局部变量,每次调用函数时都会设置为0。