jQuery에 전역 값(반드시 전역 변수가 아님)을 저장하는 방법?
현재 저는 수많은 자바스크립트, jQuery, 마이크로소프트 클라이언트 자바스크립트 및 기타 라이브러리를 사용하는 레거시 웹 페이지를 작업하고 있습니다.결론 - 기업이 정당화할 수 없기 때문에 페이지 전체를 처음부터 다시 쓸 수는 없습니다.그래서.. 그게 그거에요.어쨌든, 저는 변수로 글로벌 네임스페이스를 오염시킬 필요가 있습니다(저도 정말 시도하지 않았습니다).제가 생각하고 있던 세가지 선택지가 있습니다.
그냥 일반 자바스크립트 선언으로 저장/검색하면 됩니다.
var x = 0;
jQuery를 사용하여 DOM 태그에 값을 저장/검색합니다.
$("body").data("x", 0);
숨김 양식 필드를 사용하고, jQuery로 값을 설정/검색합니다 -
$("whatever").data("x", 0);
더 좋은 방법이 있습니까?기존 코드 더미를 살펴보았는데 함수에서 변수 범위를 지정할 수 있다고 생각하지 않습니다.
다음과 같이 jQuery 개체 내부에 네임스페이스를 만들 수 있습니다.
$.mynamespace = {
myVar : "something",
myVar2 : "somethingElse"
};
또는:
$.mynamespace = {};
$.mynamespace.myVar = "something";
$.mynamespace.myVar2 = "somethingElse";
'mynamespace'라는 이름의 플러그인 메서드는 덮어쓰게 되므로 반드시 적절한 이름을 사용해야 합니다.
이 상황을 처리하는 가장 좋은 방법은 창 개체에 개체를 정의하는 것입니다.
window.my_config =
{
my_var1 : 1,
my_var1 : 2,
my_var1 : 3
};
이렇게 하면 스코프가 깔끔하고 깨끗하게 유지됩니다.그리고 언제든지 전세계적으로 접속할 수 있습니다.window.my_config
코드를 보는 사람이라면 누구나 글로벌이 접속되고 있다는 것을 알 것입니다.
전역 범위에서 해시를 생성하여 네임스페이스로 사용할 수 있습니다.
MyNamepace={}
MyNamespace.newvar = 'value'
// MyNamespace.newvar => 'value'
연습 내용만 공유하면 필요한 자바스크립트 파일에 적절한 접두사를 사용하여 전역 개체/var를 만들 수 있습니다. 마치 이 개체가 텍스트 상자가 될 페이지에서 작업하는 것처럼 이름을 지정합니다.
g_TxtMyValue = 'value'; // g_ specifies it to be a global variable, it is one
// of the many conventions used
두 개 이상의 전역 변수가 있는 경우 다음과 같은 네임스페이스를 사용할 수도 있습니다.
my_txt = {}; // For a real site I would use a prefix relative to the project
// name instead of "my".
my_txt.testValueOne = 'Value one';
my_txt.testValueOne = 'Value two';
이러한 변수는 초기화된 후 웹 사이트를 통해 사용할 수 있습니다.
도움이 되었으면 좋겠습니다.
밑줄을 사용합니다.
_.isEmpty('')
돌아올 것입니다true
.
짧은 공지 사항입니다.
팬시박스는 AJAX(iFrame 내에서 로드되는 경우 근접 메소드에 "parent"를 추가해야 함)를 수행하고 있습니까?
parent.$.fancybox.close();
언급URL : https://stackoverflow.com/questions/2866866/how-to-store-a-global-value-not-necessarily-a-global-variable-in-jquery
'programing' 카테고리의 다른 글
GCC의 __thread는 어떻게 구현됩니까? (0) | 2023.10.20 |
---|---|
반복하는 동안 Python dict 수정 (0) | 2023.10.20 |
구축 시 Swift 컴파일러 분할 오류 (0) | 2023.10.15 |
IHtpActionResult를 사용할 때 사용자 지정 헤더를 설정하는 방법은? (0) | 2023.10.15 |
엔티티가 있는 xml에서 MySQL ExtractValue() (0) | 2023.10.15 |