Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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/1/cocoa/3.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 超时不';t超时_Javascript_Jquery - Fatal编程技术网

Javascript 超时不';t超时

Javascript 超时不';t超时,javascript,jquery,Javascript,Jquery,我在javascript对象中有一组函数。以下是其中之一: addImage: function(evt) { var file = evt.target.files[0]; /* Only process image files.*/ if(file.type.match('image.*')) { /*Add image to FileReader object*/ var reader = ne

我在javascript对象中有一组函数。以下是其中之一:

addImage: function(evt) {
        var file = evt.target.files[0];
        /* Only process image files.*/
        if(file.type.match('image.*')) {
            /*Add image to FileReader object*/
            var reader = new FileReader();
            reader.readAsDataURL(file);
            /*Add image to local storage */
            reader.onload = (function(theFile) {
                return function(e) {
                    localStorage.setItem(underlayer.url, e.target.result);
                    //add image
                    underlayer.setImage();
                    underlayer.setPosition();
                    setTimeout(underlayer.setHeight(), 5000);

                };
            })(file);
        }
    },
我希望underlayer.setHeight()在延迟后触发,这是必要的,因为它读取加载到本地存储器中的图像的高度,这需要几毫秒。但是,underlayer.setHeight会立即触发,而不是延迟触发。

通过在
setHeight
之后放置
()
,您正在调用该函数,并将其返回值传递给
setTimeout
。这显然不是你想要做的

卸下
()
,它应该可以正常工作

编辑:忘记上下文<代码>设置超时(函数(){underlayer.setHeight();},5000)可能是您最好的选择。

()
放在
setHeight
之后,您正在调用该函数,并将其返回值传递给
setTimeout
。这显然不是你想要做的

卸下
()
,它应该可以正常工作


编辑:忘记上下文<代码>设置超时(函数(){underlayer.setHeight();},5000)可能是您的最佳选择。

您需要更改
设置超时时间

setTimeout(function(){underlayer.setHeight()},5000);

您需要更改
setTimeout
代码

setTimeout(function(){underlayer.setHeight()},5000);

正如我所理解的,你不应该使用超时,而是添加图像的onload事件正如我所理解的,你不应该使用超时,而是添加图像的onload事件啊,这是真的。忘了那个XDAh,没错。忘了那个XD