2012-02-12 2 views
2

jQuery의 데이터 메소드를 정상적으로 사용할 때 아무런 문제가 없습니다. 하지만 플러그인 내부에서 사용하여 적용된 각 요소의 설정을 저장하고 싶습니다.플러그인 내부의 jquery 데이터 메소드의 이상한 동작

다음과 같은 문제가 있습니다. 처음으로 플러그인을 적용한 각 요소에 데이터를 저장합니다. 예를 들어, $('div')에 플러그인을 적용한 다음 $('#div1')의 값을 설정하면 동일한 값이 자동으로 $('#div2')으로 설정됩니다.

http://jsfiddle.net/sX7AC/1/

이 예를 들어 바이올린

무슨 뜻인지 보여. 왜 이런 일이 일어나는 걸까요? 플러그인 외부에서 똑같은 것을하려고 할 때 작동합니다.

+0

아니, 내가 별도로 각 요소에 대한 설정을 저장하기 위해 노력하고있어 참조하지만, 모든 요소에 저장하고 그 이유를 모르겠어요. @gdoron - 내가 보여준 링크는 실제로 데모 용이며 실제로 플러그인은 아무 것도하지 않습니다. – chalgoman

답변

2

settings 개체입니다. 이 개체를 사용하는 모든 div의 데이터를 설정하고 있습니다. height으로 전화하면 해당 개체의 필드가 변경됩니다. 따라서 다른 div의 값도 업데이트됩니다. ('myPluginData'는 동일한 객체를 참조하기 때문에)

해당 설정 객체 내에 상태를 저장하려면 extend 명령을 each 안에 있습니다 (따라서 각 요소마다 다른 개체가 생성됩니다).

updated example

+0

정말 고마워요! 나는 이걸로 어제부터 내 머리카락을 당길거야. 이제 괜찮아. – chalgoman