Создать глобальную переменную в jQuery вне функции document.ready - PullRequest
1 голос
/ 14 июля 2020
• 1000 функция. теперь появляется сообщение об ошибке '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>

Ответы [ 5 ]

1 голос
/ 14 июля 2020

Вы можете объявить переменную global var за пределами функции готовности документа, она станет доступной, когда 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>
1 голос
/ 14 июля 2020

Это потому, что переменная «dummy» не является глобальной переменной. Это локальная переменная в функции 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>

здесь превратить пустышку в глобальную переменную

0 голосов
/ 14 июля 2020

    $(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');
  }
}
0 голосов
/ 14 июля 2020

Фиктивное значение может использоваться только в этой функции generateTable. Если вы хотите использовать фиктивное значение, вы должны определить глобальную переменную.

0 голосов
/ 14 июля 2020

Сначала объявите переменную вне функции как;

const dummy;

, а затем напишите другой код. Теперь он станет доступен глобально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...