[size=24px]window.onscroll=window.onload=inix()
为什么都是window事件为什么调用move方法时不加括号,调用inix()方法时加括号呢????document.myform.selCity.options.selectIndex=0; 与  document.myform.selCity.selectedIndex=0; 有区别吗???
[/size]注:selCity是下拉列表框的name

解决方案 »

  1.   

    onscroll onload属性期待的是处理函数的句柄,
    如果定义函数是 function inix(){} 相当于
    inix = function(){}
    inix就是函数句柄, inix()是函数的调用执行
    如果希望 window.onload = inix()的话, inix的执行返回结果必须是函数句柄 比如 return funcion(){...}--------------
    options没有selectIndex属性 
      

  2.   

    这个我不是很明白……   
    window.onscroll=move    ;和window.onLoad=move()
    我是问为什么window事件调用方法时,一个要加括号一个不加呢????
      

  3.   

    简单的说  就是window.onscroll=move 是把move这个函数绑定到window.onscroll事件上,
    而window.onload = inix()是先执行inix函数,然后把inix执行后的返回值绑定给window.onload事件,所以inix函数的返回值必须是一个函数,就像这样 function inix(){
        ...
        return function(){
            ...
        }
    }
      

  4.   

    能在说明白点吗,不是很明白。window.onload事件返回不一定有值啊??
      

  5.   

    我这样试验了下
    <script>
    function a(){alert(1);}
    window.onload=a;//运行后弹出1,就是因为a()最后的结果是个函数alert()
    </script>而
    <script>
    var x=0;
    function a(){x=1;}
    window.onload=a;
    alert(x);//运行后弹出为0,这个应该是因为onload事件还没有执行的关系
    </script>再
    <script>
    var x=0;
    function a(){x=1;}
    window.onload=a;
    </script>
    <input type="button" onclick="alert(x)" value="ddd" />
    <!--按钮点击后,弹出为1,说明onload是执行了a(),显然a函数里面是个赋值等式,和楼上大大说的不一样-->
      

  6.   


    你window.onload事件什么时候执行都没有搞清楚啊 。onload 是等到整张页面加载完之后才执行的,页面的加载顺序是 全局的js脚本,然后加载DOM节点,然后才是执行onload,这个跟onload的出现的顺序无关
    你的例子中alert(x)是页面没有加载完就执行的,先于onload。 而button的onclick 事件,是整张页面加载完了,onload也执行了,然后你执行了点击动作
    没法在详细解释了,再不懂去看js的基础书籍吧
      

  7.   

    不是说window.onload的返回值, 是inix函数执行之后的返回值,这个返回值一定要是个函数,然后绑定给window.onload,比如下面例子window.onload = fn;
    function fn(){
        alert(1);
    }和下面例子是等价的window.onload = func();
    function func(){
        function fn(){
            alert(1);
        };
        return fn;
    }或者直接写成匿名函数也是等价的window.onload = func();
    function func(){
        return function(){
            alert(1);
        };
    }但如果是下面这样呢 ?window.onload = func();
    function func(){
        alert(2);    function fn(){
            alert(1);
        };    return fn;
    }这时候就要注意执行顺序了,首先在绑定window.onload之前,会先执行func函数,输出 2 ,并返回fn这个函数绑定给window.onload事件,然后等待页面加载完,在所有的页面元素加载完之后,执行window.onload事件,输出 1。
    我使出浑身解数解释了,吐血三升。