/ Wywołanie funkcji / jquery wewnątrz zdarzenia click - javascript, jquery

wywołanie funkcji jquery wewnątrz zdarzenia click - javascript, jquery

To jest moja funkcja javascript. Problem polega na tym, że wywołuję funkcję wewnątrz zdarzenia kliknięcia, która pokazuje ten błąd w przeglądarce Firefox, ale nie w Chrome.

ReferenceError: toDo nie jest zdefiniowany

$(document.body).on("click", ".btnCheck", function(){
if () {
//do something
} else {
if (pcheck == "online") {
// Doing some operations and function calling
toDo();
} else {
toDo();  // function calling, HERE SHOWING ERROR IN FIREFOX
// ReferenceError: toDo is not defined
}
}
function toDo () {
//Do something
}
});

Odpowiedzi:

0 dla odpowiedzi № 1

Rozwiązaniem jest po prostu przejście do deklaracji Zrób przed pierwszą instrukcją if. Będzie nadal miał dokładnie ten sam zakres, ale funkcja będzie dostępna.

Edytuj tylko, aby było jasne

$(document.body).on("click", ".btnCheck", function(){
function toDo () {
//Do something
}
if () {
//do something
} else {
if (pcheck == "online") {
// Doing some operations and function calling
toDo();
} else {
toDo();  // function calling, HERE SHOWING ERROR IN FIREFOX
// ReferenceError: toDo is not defined
}
}

});

0 dla odpowiedzi nr 2

Możesz spróbować tego

var theFunction = function toDo () {
};
// then to execute it
theFunction();

W Twoim przypadku

$(document).ready(function(){
var theFunction = function toDo () {
alert();
};

var pcheck = "test"
if (pcheck == "online") {
theFunction();
}else{
theFunction();
}
});

Ale nie powinieneś tego robić