Jquery 从动态加载的.js文件内部调用函数无法正常工作
当文档中存在已知类时,我动态加载.js和.css文件。 当我立即从加载的.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
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加载,它不会影响脚本。