日期:2014-05-16  浏览次数:20319 次

怎样让某个函数执行其中一个 或者全部执行
JScript code

window.onload = function(){
    if(document.getElementById("c_canvas1")){
        var ctx1 = document.getElementById("c_canvas1").getContext('2d');
    }
    if(document.getElementById("c_canvas2")){
        var ctx2 = document.getElementById("c_canvas2").getContext('2d');
    }
    var ctx = ctx1||ctx2;
    var img = new Image();
    var speed = 120;
    img.onload = function(){
        function drawStar(){
            for(var i = 0; i < 4; i++ ){
                draw(i);
            }
            function draw(x){
                setTimeout(function(){
                     ctx.clearRect(0,0,270,270);
                     ctx.drawImage(img,0,270*x,270,270,0,0,270,270);
                },speed*x);
            }
        }
        setInterval(drawStar,480);
    }
    if( ctx == ctx1){
        ctx = ctx1;
        img.src = 'themes/images/imgc/an1.png';
    }
    if( ctx == ctx2){
        ctx = ctx2;
        img.src = 'themes/images/imgc/an2.png';
    }
}



代码在上面。 大手们应该一看就能明白。 我想让 ctx == ctx1 或者 ctx == ctx2 都执行中间那个 。而且如果2个都有的话也要都执行。现在不管怎么写都只执行其中一个。
求大手们帮我修改下
在线等。。急

------解决方案--------------------
我只看到一个Image对象

个人感觉吧,你这解题思路有点问题
你应该将那个img.onload事件中的代码做成一个公用的函数,在函数部通过参数或者其他方式去设置它的触发对象

然后每设置一个图片的src后,再设置它的onload事件