为什么在使用jquery ajax 加载时未定义jquery pjax
Why jquery pjax is not defined when using jquery ajax load
为什么在js文件中没有定义jquery pjax,但是如果我输入$.pjax
,它会在控制台中定义
function loadScript(url, callback) {
callback = (typeof callback != 'undefined') ? callback : {};
$.ajax({
type: "GET",
url: url,
success: callback,
dataType: "script",
cache: true,
});
}
$('document').ready(function() {
$.when(
loadScript('//cdnjs.cloudflare.com/ajax/libs/codemirror/5.10.0/codemirror.min.js'),
loadScript('//cdnjs.cloudflare.com/ajax/libs/jquery.pjax/1.9.6/jquery.pjax.min.js')
).done(function() {
$('.loading').hide().next().css({
'visibility': 'visible',
'overflow-y': 'auto',
});
console.log($.pjax() + ' ...');
});
});
它控制这个错误:Uncaught TypeError: $.pjax is not a function
您的 loadScript 函数没有 return 承诺,因此从 $.when 的角度来看,您的脚本会立即加载,但事实并非如此。
尝试更改行:
$.ajax({
// ...
})
到
return $.ajax({
// ...
});
所以你 return 承诺 $.when
这里有两个问题。
你必须return一个由$.return编辑的承诺ajax
$.当接受一个数组
参数时
即
function loadScript(...) {
...
return $.ajax
}
$.when([loadScript('a'), loadScript('b')]).then(...)
为什么在js文件中没有定义jquery pjax,但是如果我输入$.pjax
function loadScript(url, callback) {
callback = (typeof callback != 'undefined') ? callback : {};
$.ajax({
type: "GET",
url: url,
success: callback,
dataType: "script",
cache: true,
});
}
$('document').ready(function() {
$.when(
loadScript('//cdnjs.cloudflare.com/ajax/libs/codemirror/5.10.0/codemirror.min.js'),
loadScript('//cdnjs.cloudflare.com/ajax/libs/jquery.pjax/1.9.6/jquery.pjax.min.js')
).done(function() {
$('.loading').hide().next().css({
'visibility': 'visible',
'overflow-y': 'auto',
});
console.log($.pjax() + ' ...');
});
});
它控制这个错误:Uncaught TypeError: $.pjax is not a function
您的 loadScript 函数没有 return 承诺,因此从 $.when 的角度来看,您的脚本会立即加载,但事实并非如此。
尝试更改行:
$.ajax({
// ...
})
到
return $.ajax({
// ...
});
所以你 return 承诺 $.when
这里有两个问题。
你必须return一个由$.return编辑的承诺ajax
$.当接受一个数组
参数时
即
function loadScript(...) {
...
return $.ajax
}
$.when([loadScript('a'), loadScript('b')]).then(...)