많은 기능을 만들었습니다. script.js 파일에이 함수들을 넣었습니다. 그러나 모든 기능이 모든 페이지에로드됩니다.다른 페이지에서 기능 호출
는이 같은 기능을 만들었습니다 :
$(function() {
}):
그러나 어떻게이 기능은 모든 페이지에로드되지 않도록 할 수 있습니까? 필요한 기능 만 호출 할 수 있습니까?
많은 기능을 만들었습니다. script.js 파일에이 함수들을 넣었습니다. 그러나 모든 기능이 모든 페이지에로드됩니다.다른 페이지에서 기능 호출
는이 같은 기능을 만들었습니다 :
$(function() {
}):
그러나 어떻게이 기능은 모든 페이지에로드되지 않도록 할 수 있습니까? 필요한 기능 만 호출 할 수 있습니까?
폴 아이리쉬는 그 문제를 다루는 좋은 방법이 있습니다. 당신은 기본적으로 같은 각 페이지에 대한 구조를 만들 수 있습니다
: 자신의 문서를 참조
var siteNameSpace = {
homepage : {
onload : function(){
// do this stuff.
}
},
contact : {
onload : function(){
// onload stuff for contact us page
}
}
};
그리고 각각의 페이지의 코드 만 실행됩니다 :
$(document).ready(siteNameSpace[ document.body.id ].onload);
이 경우을 할당해야합니다. 각 페이지의body
에 태그 :
<body id="home">
<body id="contactUs">
and so on
한 가지 방법은 .js
파일을 모듈로 분할하고 해당 페이지와 관련된 파일 만 .js
으로 만드는 것입니다. jQuery를 에서
someChecks
보통 특정 요소가 존재 (
if ($(someSelector).length)
)하는 것이 확인되어
$(function() {
if (someCheck) {
// do something
}
if (someCheck) {
// do something else
}
});
.
그러나 특별히 질문에 대답하려면 함수의 이름을 지정한 다음 호출해야합니다.
$(function() {
// do foo
})
당신은
function someName() {
// do foo
}
이있을 것이다 다음은 someName()
같은 함수를 호출 할 수 있지만, 분명히 당신은 당신이 당 페이지에서 제어 할 수있는 장소에 함수 호출을 넣어 필요할 것 (예 : 페이지의 <head>
또는 답변 앞부분에서 설명한대로 다른 .js
파일을 포함하여)
외부 자바 스크립트 파일을 몇 개 만들어 페이지에 배치 할 수 있습니다.
또는 jQuery의 getScript
method을 사용하여 스크립트를로드 할 수 있습니다.
$.getScript('url of ext js', function(data, textStatus) {
});
정말 정확히 요구하는지 이해할 수 없다,하지만 어쩌면 내가 당신을 위해 몇 가지를 지울 수 있습니다.
변수 (함수)가 다른 파일에 선언 되어도 상관 없습니다. 무엇이 중요합니까? 범위이 선언되었습니다.
즉, 함수가 다른 파일에 있더라도 전역 (클로저/함수/개체 내부가 아니라)으로 선언 된 경우에는 표시되고 어디서나 호출 할 수 있습니다. 전역 함수의
예는 :
function foo() {/*...*/}
var bar = function(){/*...*/}
window.func = function(){/*...*/}
당신은, 당신이 클로저를 사용한다 "숨기기"기능, 다른 범위에서 액세스를 제작하십시오. 폐쇄에 정의 된 함수의
예 :
(function(){
function bar(){}
alert(typeof bar);// function
// bar is visible here
})();
// bar is undefined here
: 당신이 한 번만를 실행하고 완전히 액세스 할 수 없게하려는 경우 이상
function initialise {
var foo = function(){}
function bar(){}
alert(typeof foo); // function
alert(typeof bar); // function
// foo & bar are visiblehere
}
alert(typeof foo); // undefined
alert(typeof bar); // undefined
// foo & bar are undefined here
더 많은, 당신은 기능을 실행 자체에서 그 (것)들을 포장 할 수 있습니다 나는 당신의 질문에 대답했는지 모르겠지만 이것이 도움이되기를 바랍니다.
함수에 이름을 지정하고 특정 이벤트, 예를 들어 버튼 클릭, 페이지로드 등에서 함수를 호출하는지 확인하십시오. –
특정 페이지의 범위를 벗어나는 함수를 정의하거나 로드 기능 또는하지 ... – Dev