jQuery에 전역 값 (전역 변수 일 필요는 없음)을 저장하는 방법은 무엇입니까?
현재 저는 수많은 JavaScript, jQuery, Microsoft 클라이언트 JavaScript 및 기타 라이브러리를 사용하는 레거시 웹 페이지에서 작업하고 있습니다. 결론-비즈니스가 정당화 할 수 없기 때문에 전체 페이지를 처음부터 다시 작성할 수 없습니다. 그래서 ... 그게 바로 그 거예요. 어쨌든, 변수를 사용하여 전역 네임 스페이스를 오염시켜야합니다. 제가 생각했던 세 가지 옵션이 있습니다.
일반 JavaScript 선언을 사용하여 저장 / 검색하십시오.
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'
내 연습을 당신과 공유하기 만하면이 개체가 텍스트 상자가 될 페이지에서 작업하는 것처럼 필요한 JavaScript 파일에 전역 개체 / 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()
.
_.isEmpty('')
반환 true
됩니다.
짧은 알림 :
fancybox가 다음과 같이 AJAX를 수행합니까 (즉, iFrame 내에서로드되는 경우 close 메소드에 "parent"를 추가해야 함).
parent.$.fancybox.close();
'Nice programing' 카테고리의 다른 글
Java 스위치 케이스 : 중괄호가 있거나 없는가? (0) | 2020.10.07 |
---|---|
파이썬에서 dict.pop (a, b)는 무엇을 의미합니까? (0) | 2020.10.07 |
MySQL 데이터베이스의 제약 목록 (0) | 2020.10.07 |
Bash에서 명령 줄 인수를 변경하는 방법은 무엇입니까? (0) | 2020.10.07 |
Oracle 11g에서 사용자를 생성하고 권한을 부여하는 방법 (0) | 2020.10.07 |