간단하고 가벼운 캐 러셀 플러그인 인 Unslider.js라는 플러그인을 온라인에서 파고 있었는데 플러그인의 다음 코드를 이해하는 데 큰 어려움이 있습니다.
me.data(key, instance).data('key', key);
이제이 줄의 컨텍스트를 설명하겠습니다. 플러그인에서 위 줄 앞에 다음 코드 줄이옵니다.
$.fn.unslider = function(o) {
var len = this.length;
// Enable multiple-slider support
return this.each(function(index) {
// Cache a copy of $(this), so it
var me = $(this),
// if len less than 1 , the below line returns "Unslider"
// Else it returns Unslider-1 , Unslider-2 and so on ..
key = 'unslider' + (len > 1 ? '-' + ++index : '');
instance = (new Unslider).init(me, o);
몇 가지 테스트를 실행 한 결과 아래 줄에 대해 알아 냈습니다.
key = 'unslider' + (len > 1 ? '-' + ++index : '');
즉, key는 'slider'를 반환하고 len "is less then"1이고 1보다 크면 결과는 'slider-1', 'slider-2', 'slider-3'등과 같이 표시됩니다.
다음 줄 :
instance = (new Unslider).init(me, o);
Unslider의 새 인스턴스를 만들고 인스턴스에 저장하고 그 후에.
init (me, o) 함수가 실행됩니다.
me = $ (this) 및 o는 사용자가 플러그인에 전달한 객체 리터럴 일뿐입니다.
이제 위의 모든 설명을했기 때문에 모든 것이 문맥에서 벗어나지 않습니다.
이제 Jquery 공식 문서로 이동하여 data () 사용을 확인했습니다.
나는 다음과 같은 예를 보았다.
$( "body" ).data( "foo", 52 );
$( "body" ).data( "bar", { myType: "test", count: 40 } );
$( "body" ).data( { baz: [ 1, 2, 3 ] } );
$( "body" ).data( "foo" ); // 52
$( "body" ).data(); // { foo: 52, bar: { myType: "test", count: 40 }, baz: [ 1, 2, 3 ] }
이 예는 솔직히 말해서 꽤 귀엽지 만 어떻게 든 내가 원하는 것을 이해하는 데 도움이되지 않습니다.
제 질문으로 돌아가서
me.data(key, instance).data('key', key);
위의 라인은 무엇을 진짜로 않습니다 지내요 ?
편집하다 ::
그리고 내가 그 줄을 떼어 내면 모든 것이 잘 작동하는 것 같지만, 플러그인은 여전히 잘 작동하고 carousal은 여전히 슬라이드합니다.
감사합니다.
알렉산더.
jQuery data
가 키와 값이라는 두 개의 인수와 함께 사용되는 경우 jQuery가 추적하는 내부 개체의 지정된 키 아래에 값을 저장합니다.
이렇게하면 jQuery는 컬렉션을 반환하므로 다시 연결할 수 있습니다.
var me = $('#element'); // a DOM element
var me2 = me.data('key1', 'value'); // returns same DOM element
me2.data('key2', 'value');
와 같다
var me = $('#element'); // a DOM element
me.data('key1', 'value').data('key2', 'value');
컬렉션이 반환되고 연결될 수 있기 때문입니다.
에 저장된 데이터 data
는 플러그인에서 내부적으로 사용되며 데이터를 다시 가져올 수있는 키가있는 한 어떤 것이 든 객체 일 수도 있습니다. 이것은 HTML의 데이터 속성이 아니라 내부입니다. 모든 데이터 유형, 심지어 함수의 인스턴스를 허용하는 저장소.
키는 고유하게 증가합니다.
key = 'unslider' + (len > 1 ? '-' + ++index : ''); // the string "unslider-1" etc
그런 다음 data
슬라이더의 현재 인스턴스 를 저장 하는 첫 번째 호출
me.data(key, instance).data('key', key);
두 번째는 키를 저장하는 동안
me.data('key');
키를 되찾기 위해 키의 마지막 숫자가 무엇인지 모르면 실제로 할 수있는 것처럼 약간 영리합니다.
var key = me.data('key');
var instance = me.data(key);
인덱스, 증분 등에 관계없이 올바른 의도를 다시 가져옵니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다