Trudno mi jest ustalić, na czym dokładnie polega problem w wywołaniu funkcji. Iv „e próbowałem wielu rzeczy, takich jak zdefiniowanie mojego wywołania, zanim zostanie ono użyte, i umieszczenie ponad wszystko tagu odwołania skryptu dla jquery. Wydaje się, że nic nie działa.
test = function() {}; test();
Mój kod jest poniżej:
<link rel="stylesheet" type="text/css" href="/sites/SPAPPS02/creditmemo/SiteAssets/Credit%20Memo.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script> <script type="text/javascript"> $(document).ready(function() { ExecuteOrDelayUntilScriptLoaded(OnLoad, "sp.js"); function OnLoad() { $("#calc").click(function() { test(); }); } }); </script>
Moja funkcja spoczywa w osobnym pliku.
function test() { console.log("Success!"); }
Pełny komunikat o błędzie znajduje się poniżej:
Home.aspx:889 Uncaught ReferenceError: test is not defined at HTMLInputElement.<anonymous> (Home.aspx:889) at HTMLInputElement.dispatch (jquery.min.js:2) at HTMLInputElement.v.handle (jquery.min.js:2)
Odpowiedź
Wygląda na to, że problem dotyczy kolejności wykonywania. Do pliku zawierającego funkcję testową należy się odwołać przed wbudowanym kodem JS, który wywołuje funkcję testową.