Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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
使用jQuery运行JavaScript函数构建时出现问题_Javascript_Jquery - Fatal编程技术网

使用jQuery运行JavaScript函数构建时出现问题

使用jQuery运行JavaScript函数构建时出现问题,javascript,jquery,Javascript,Jquery,我有一个函数 function imageDefer() { $('img').each(function(){ $(this).attr('src', $(this).attr('data-defer')); }); } 现在我想这样运行这个函数 $(document).ready(function () { imageDefer(); }); 这是我的html <img src="data:image/png;base64,R0lGODlhAQABA

我有一个函数

function imageDefer() {
   $('img').each(function(){
      $(this).attr('src', $(this).attr('data-defer'));
   });
}
现在我想这样运行这个函数

$(document).ready(function () {
    imageDefer();
});
这是我的html

<img src="data:image/png;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-defer="thumbnail.jpg">


JavaScript和jQuery代码放在单独的.js文件中,但它确实起作用。

实际发生的情况是,当函数不在
文档.ready
范围内时,您正在调用函数

尝试在
文档中声明您的函数。准备好了吗

$(document).ready(function () {

    function imageDefer() {
        $('img').each(function() {
            $(this).attr('src', $(this).attr('data-defer'));
    });

    imageDefer();
});

这对我很有效。我看没什么问题。确保thumbnail.jpg存在,并确保包含代码的.js文件放在jQuery api之后:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script src="file-with-code.js"></script>

Jsfiddle:


如果它仍然无法工作,请发送cosole的屏幕截图。

很抱歉,这不是问题所在。我已经更新了问题。控制台中有没有像imaeDefer()这样的错误没有定义??此外,若在单独的文件中有,请确保在任何脚本尝试使用该文件之前导入该文件。控制台中并没有错误,并且正确导入了.js文件。所有其他函数都正确地放置在.js文件中。您是否尝试将函数放置在相同的文件中??如果是,请尝试将函数放在document.ready()中:D@RohitS这正是我在回答中提出的:)@KobyDouek yea。。。但我想这不应该是问题所在。因为在第一种情况下定义函数并不重要,除非它在调用函数的范围内。。