在document.ready函数外部的jQuery中创建全局变量



我有一个函数CreateTable并生成常量变量。我想访问其他函数中的变量。我点击它调用的函数generatePDF的按钮。在那里,我想检查generateTable函数内部生成的伪值的长度。现在得到错误消息"Uncaught ReferenceError:dummy is not defined">

$(document).ready(function(){
generateTable();
function generateTable() {
const dummy = [{
"key": "value",
"key1": "value1"
}]; //created by some other fnction;
}
}
function generatePDF() {
if (dummy.length) {
//do sone thing
alert('hello');
}
}
<button onclick="generatePDF()">Make PDF</button>

您可以在文档就绪函数之外声明一个globalvar,一旦DOM就绪,它就会变为可用。

运行下面的代码段。

//Global Var
let dummy;
//Document ready start here
$(document).ready(function() {
function generateTable() {
dummy = [{
"key": "value",
"key1": "value1"
}]; //created by some other fnction;
}
generateTable();
});

//Outside document ready
function generatePDF() {
if (dummy.length) {
//do sone thing
alert('hello');
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button onclick="generatePDF()">Make PDF</button>

这是因为变量"伪";不是全局变量。它是函数generateTable中的一个局部变量。

let dummy;
generateTable();
function generateTable() {
dummy = [{ key: "value", key1: "value1" }]; //created by some other fnction;
}
function generatePDF() {
if (dummy.length) {
//do sone thing
alert("hello");
}
}
<button onclick="generatePDF()">Make PDF</button>

这里将虚拟对象转换为全局变量

首先将函数外的变量声明为;

const dummy;

然后编写其他代码。现在它可以在全球范围内使用。

伪值只能在此函数generateTable中使用。如果要使用伪值,则应定义一个全局变量。

$(document).ready(function(){
var x;
x=generateTable();

function generateTable() {
const dummy = [{
"key": "value",
"key1": "value1"
}]; //created by some other fnction;
return(dummy);
}
}
function generatePDF() {
if (x.length) {
//do sone thing
alert('hello');
}
}

最新更新