Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 一些简单的脚本。可以看到什么';这是不对的_Javascript_Settimeout - Fatal编程技术网

Javascript 一些简单的脚本。可以看到什么';这是不对的

Javascript 一些简单的脚本。可以看到什么';这是不对的,javascript,settimeout,Javascript,Settimeout,下面是指向带有脚本的页面的链接。 这是我的脚本,出于某些原因,所有的函数在鼠标悬停的情况下启动。谁能告诉我我的剧本有什么问题吗 window.onload = sliding; var tags = new Array('tag1','tag2','tag3','tag4','tag5','tag6','tag7','tag8');// List of headings var pics = new Array('popout1','popout2','popout3','popout4','

下面是指向带有脚本的页面的链接。

这是我的脚本,出于某些原因,所有的函数在鼠标悬停的情况下启动。谁能告诉我我的剧本有什么问题吗

window.onload = sliding;
var tags = new Array('tag1','tag2','tag3','tag4','tag5','tag6','tag7','tag8');// List of headings
var pics = new Array('popout1','popout2','popout3','popout4','popout5','popout6','popout7','popout8');// list of images that slide out

function sliding(){ // assing event 
    for(var i=0; i< tags.length; i++){
        document.getElementById(tags[i]).onmouseover = slideout(tags[i],pics[i]); // <-- The Problem is Here Function runs with out the actual event
        document.getElementById(tags[i]).onmouseout = slidein(tags[i],pics[i]);
    //alert('this worked,'+ tags[i] + pics[i]);
    }
}

function slideout(hid,picid){
    document.images[picid].style.visibility = "visible";
    document.images[picid].style.MozOpacity = 0.7;// need browser compatability
    moveout(hid,picid);
}

function moveout(hid,picid){
    if(currpos(picid) > 0){
        document.images[picid].style.top = currpos(picid) - 1 + "px";
        setTimeout(moveout,10);
    }else{
        clearTimeout(moveout);
    }

    function currpos(element){
        return document.getElementById(element).offsetTop;
    }
}

function slidein(hid,picid){
    document.images[picid].style.MozOpacity = 0.5;// need browser compatability
    movein(hid,picid);
}

function movein(hid,picid){
    if(currpos(picid) < 210){
        document.images[picid].style.top = currpos(picid) + 1 + "px";
        setTimeout(movein,10);
    }else{
        clearTimeout(movein);
        document.images[picid].style.visibility = "hidden";
    }

    function currpos(element){
        return document.getElementById(element).offsetTop;
    }
}
window.onload=滑动;
变量标记=新数组('tag1'、'tag2'、'tag3'、'tag4'、'tag5'、'tag6'、'tag7'、'tag8');//标题列表
var pics=新数组('poput1'、'poput2'、'poput3'、'poput4'、'poput5'、'poput6'、'poput7'、'poput8');//滑出的图像列表
函数滑动(){//assing事件
对于(var i=0;i
您正在将slideout()和slidein()的结果指定为处理程序。您还需要隔离闭包变量;自调用函数将确保i循环变量不会被所有事件处理程序共享

function sliding(){ // assing event 
    for(var i=0; i< tags.length; i++){

        document.getElementById(tags[i]).onmouseover =(function(index){
            return function() {
               slideout(tags[index],pics[index]);
            }
        })(i); 

        document.getElementById(tags[i]).onmouseout = (function(index){
            return function() {
                slidein(tags[index],pics[index]);
            }
        })(i);
    }
}
函数滑动(){//assing事件
对于(var i=0;i
您正在将slideout()和slidein()的结果指定为处理程序。您还需要隔离闭包变量;自调用函数将确保i循环变量不会被所有事件处理程序共享

function sliding(){ // assing event 
    for(var i=0; i< tags.length; i++){

        document.getElementById(tags[i]).onmouseover =(function(index){
            return function() {
               slideout(tags[index],pics[index]);
            }
        })(i); 

        document.getElementById(tags[i]).onmouseout = (function(index){
            return function() {
                slidein(tags[index],pics[index]);
            }
        })(i);
    }
}
函数滑动(){//assing事件
对于(var i=0;i
这不是如何使用clearTimeOut

setTimeout返回必须传递给clearTimeOut的计时器id:

var timer = setTimeout( fn, 10 );
clearTimeout( timer);

这不是如何使用clearTimeOut

setTimeout返回必须传递给clearTimeOut的计时器id:

var timer = setTimeout( fn, 10 );
clearTimeout( timer);
这里有一个问题:

function sliding(){ // assing event 
    for(var i=0; i< tags.length; i++){
        document.getElementById(tags[i]).onmouseover = slideout(tags[i],pics[i]); // <-- The Problem is Here Function runs with out the actual event
        document.getElementById(tags[i]).onmouseout = slidein(tags[i],pics[i]);
    //alert('this worked,'+ tags[i] + pics[i]);
    }
}
函数滑动(){//assing事件
对于(var i=0;i
function sliding(){ // assing event 
    for(var i=0; i< tags.length; i++){
        document.getElementById(tags[i]).onmouseover = slideout(tags[i],pics[i]); // <-- The Problem is Here Function runs with out the actual event
        document.getElementById(tags[i]).onmouseout = slidein(tags[i],pics[i]);
    //alert('this worked,'+ tags[i] + pics[i]);
    }
}
函数滑动(){//assing事件
对于(var i=0;idocument.getElementById(tags[i]).onmouseover=slideout(tags[i],pics[i]);//在代码的每一行前面用4个空格在stackoverflow中突出显示它。在代码的每一行前面用4个空格在stackoverflow中突出显示它。@Ross:当在另一个函数中定义了一个函数时,内部函数可以访问外部函数中定义的变量。闭包是保持这些变量的原因,因此在外部函数完成运行后,仍然可以访问ey。在原始示例中,
i
变量保存在一个闭包中。错误的一部分是在处理程序(内部函数)运行时调用时,我被设置为tags.length,这是处理程序中使用的值。@Ross:当您在另一个函数中定义了一个函数时,内部函数可以访问外部函数中定义的变量。闭包是保持这些变量的原因,因此在外部函数运行完后仍然可以访问这些变量ning。在您最初的示例中,
i
变量保存在一个闭包中。错误的一部分是,在调用处理程序(内部函数)时,我被设置为tags.length,这是处理程序中使用的值。