Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 从动态加载的.js文件内部调用函数无法正常工作_Jquery_Function - Fatal编程技术网

Jquery 从动态加载的.js文件内部调用函数无法正常工作

Jquery 从动态加载的.js文件内部调用函数无法正常工作,jquery,function,Jquery,Function,当文档中存在已知类时,我动态加载.js和.css文件。 当我立即从加载的.js中调用函数时,它不起作用。但如果我在打电话前提醒你,那就完美了。为什么? if ($(".pdp").length) { sysLoadScript("/sysdb/resource/myDatepicker.css"); sysLoadScript("/sysdb/resource/myDatepicker.js"); $(".pdp").each(function() { ths=$(thi

当文档中存在已知类时,我动态加载.js和.css文件。 当我立即从加载的.js中调用函数时,它不起作用。但如果我在打电话前提醒你,那就完美了。为什么?

if ($(".pdp").length)
 { sysLoadScript("/sysdb/resource/myDatepicker.css");
   sysLoadScript("/sysdb/resource/myDatepicker.js");
   $(".pdp").each(function() 
    { ths=$(this);
     /* alert("this is work with alert but not without it"); */
    ths.myDatepicker({defVal:ths.attr("value"),fntSz:12}); }); }

我不知道您的
sysLoadScript
函数是做什么的,但这是使用常规jQuery时的工作方式:

$.getScript('/sysdb/resource/myDatepicker.js', function() {
    $('.pdp').each(function() {
        var ths = $(this);
        ths.myDatepicker({
            defVal: ths.attr('value'),
            fntSz: 12
        });
    });
});

$.getScript()
的第二个参数是一个回调函数,它在加载脚本后运行。

动态加载脚本是异步的。您正在尝试在加载脚本之前调用函数。你需要使用回调函数。@Barmar,你能告诉我怎么做吗?我尝试用$.ajax(…async:true)加载.js。但它不起作用。我也可以使用.css文件的.getScript吗?不,不能使用AJAX加载css。我认为您需要为此向DOM添加一个
节点。不要试图在注释中发布代码,它会丢失所有格式,并且很难阅读。你有什么问题吗?我试着在回调函数中这样做。这对不对?我认为应该行得通。检查DOM时是否看到CSS?正在应用这些样式吗?Javascript通常不需要等待CSS加载,它不会影响脚本。