>  기사  >  웹 프론트엔드  >  내 JavaScript 함수가 JSFiddle에 정의되지 않은 이유는 무엇입니까?

내 JavaScript 함수가 JSFiddle에 정의되지 않은 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-01 06:41:02231검색

Why are my JavaScript functions not defined in JSFiddle?

JSFiddle에서 JavaScript가 실행되지 않는 이유: 함수 정의 오류 해결

JSFiddle에서 JavaScript 코드를 실행하려고 하면 오류가 발생할 수 있습니다. 특정 기능이 정의되어 있지 않음을 나타냅니다. 이는 JSFiddle이 onload 함수 내에 코드를 캡슐화하여 함수 정의 범위를 제한하기 때문에 발생합니다.

함수 정의 및 참조

제공된 코드에서 fillList( ) 및 mySelectList()는 window.onload 함수 내에서 정의됩니다. 즉, 이러한 기능은 이 기능 내에서만 액세스할 수 있습니다. 그러나 이를 HTML에서 전역 변수로 참조하려고 하면 오류가 발생합니다.

해결 옵션

이 문제를 해결하려면 다음 세 가지 옵션이 있습니다.

a) 함수를 전역 변수로 수정

  • 가장 간단하고 빠르지만 이상적이지는 않은 해결책은 함수 정의 구문을 다음과 같이 변경하는 것입니다.
<code class="javascript">window.fillList = function() {}; // makes fillList a global function</code>

b) 눈에 띄지 않는 JavaScript

  • 권장되는 접근 방식은 HTML과 JavaScript를 분리하는 눈에 띄지 않는 JavaScript를 활용하는 것입니다.
<code class="javascript">// attach event listener from within JavaScript
var mySelectList = document.getElementById('mySelectList');
mySelectList.addEventListener('change', function() {
    alert('Selection changed!');
});</code>

c) JSFiddle 설정 수정

  • JSFiddle을 사용하면 래핑 옵션을 지정할 수 있습니다. 온로드 함수 내에서 코드 포함을 방지하려면 캡슐화 설정을 "No Wrap - Head or Body"로 변경합니다.

권장

옵션 b)를 적극 권장합니다. 모범 사례와 코드 구성을 촉진하기 때문입니다. JavaScript에서 HTML을 분리하면 코드에 대한 제어력과 유연성이 향상됩니다.

위 내용은 내 JavaScript 함수가 JSFiddle에 정의되지 않은 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.