2012-08-15 3 views
2

이 사람이이 차이를 설명 할 수 호출JQuery와 데이터()

container.data["state"] = { test: 1 }; // doesn't work 

는 내가 처음 건설 작동하는지 발견을, 마지막 하나는 그렇지 않습니다. 호출은 컨테이너에 초기 데이터를 채 웁니다. 즉, 'state'는 호출 될 때 비어 있습니다.

답변

2

data은 배열이 아니라 함수입니다. 두 번째 스 니펫에있는 함수의 인덱스에 액세스하려고합니다. 작동하지 않습니다. 예를 들어, http://api.jquery.com/jQuery.data/

브라우저에서 개발 콘솔을 열고,이 같은 입력 :

이 문서를 참조하십시오 나는 긴 함수 정의를 얻을 수

$("a:eq(0)").data 

를하지 배열 :

function (a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAt.... // continued 
+0

이 적합합니다. 데이터는 참조 데이터 즉, var data = $ ("a"). data ("b")에 의해 검색된 데이터의 인스턴스를 참조합니다. b.test = "c"; 내 $ ("a") 데이터 ("b")라고 부르면 테스트가 "c"로 설정됩니다. – user1514042

+1

좋은 질문입니다. 내가 그것을 들여다 볼게. –

+0

대답은 '아니오'라고 생각합니다. 'data'는 여러분이 통과 한 것의 사본 (아마 얕은 사본)을 저장합니다 : http://jsfiddle.net/NSADm/ –