Javascript Wordpress AJAX调用无法从不同的函数访问变量
我对javascript的范围有问题。我无法访问我在函数中定义的这些变量Javascript Wordpress AJAX调用无法从不同的函数访问变量,javascript,jquery,scope,global-variables,Javascript,Jquery,Scope,Global Variables,我对javascript的范围有问题。我无法访问我在函数中定义的这些变量 <script type="text/javascript"> document.onload = function() { q = JQuery; video_form = q("#wb_bc_video_form"); video_ulid = q("#wb_bc_video_ulid"); file_input = q("#wb_bc_file_
<script type="text/javascript">
document.onload = function() {
q = JQuery;
video_form = q("#wb_bc_video_form");
video_ulid = q("#wb_bc_video_ulid");
file_input = q("#wb_bc_file_input");
video_file = file_input.files[0];
video_size = q("#wp_bc_video_size");
video_time = q("#wp_bc_video_time");
};
function uploadVideo(fileFormField) {
var formdata = new FormData();
formdata.append("video", video_file);
q.ajax(
{
type: "POST",
url: ajaxurl,
beforeSend: function(xhr) {
start = new Date().getTime();
xhr.upload.addEventListener('progress', function(e) {
var loaded = e.loaded / 1048576;
var total = e.total / 1048576;
video_size.innerHTML = loaded.toPrecision(4) + "(MB / " + total.toPrecision(4) + "MB) ";
video_time.innerHTML = (new Date().getTime() - startTime) / 1000 + " Seconds";
if (Math.round(loaded) === Math.round(total)) {
node(video_form, "p", "Processing video... please wait.");
}
}, false);
}
}
).done(function(txt) {
console.log(txt);
}).fail(function(xhr, txt) {
console.log(txt);
}).always(function(xhr, txt) {
console.log(txt);
});
}
</script>
uploadVideo函数无法访问document.onload中的所有变量
<script type="text/javascript">
document.onload = function() {
q = JQuery;
video_form = q("#wb_bc_video_form");
video_ulid = q("#wb_bc_video_ulid");
file_input = q("#wb_bc_file_input");
video_file = file_input.files[0];
video_size = q("#wp_bc_video_size");
video_time = q("#wp_bc_video_time");
};
function uploadVideo(fileFormField) {
var formdata = new FormData();
formdata.append("video", video_file);
q.ajax(
{
type: "POST",
url: ajaxurl,
beforeSend: function(xhr) {
start = new Date().getTime();
xhr.upload.addEventListener('progress', function(e) {
var loaded = e.loaded / 1048576;
var total = e.total / 1048576;
video_size.innerHTML = loaded.toPrecision(4) + "(MB / " + total.toPrecision(4) + "MB) ";
video_time.innerHTML = (new Date().getTime() - startTime) / 1000 + " Seconds";
if (Math.round(loaded) === Math.round(total)) {
node(video_form, "p", "Processing video... please wait.");
}
}, false);
}
}
).done(function(txt) {
console.log(txt);
}).fail(function(xhr, txt) {
console.log(txt);
}).always(function(xhr, txt) {
console.log(txt);
});
}
</script>
您试图访问哪些变量,目的是什么?快速回答,在function.document.onload之外定义它们?那行吗。您知道Wordpress几乎内置了jQuery,并且有自己的处理ajax请求的方法,带有预制挂钩等@rorymcrossan我无法访问document.onload函数中的任何变量为什么在加载DOM之前需要访问DOM元素?除了不合逻辑之外,这是不可能的。你甚至都不接近!您使用的是JQuery,它可能被称为JQuery,但您没有使用正确的document.ready函数,您在JQuery对象上使用文件[0]和innerHTML,并且您几乎所有其他操作都出错。