Unslider.js의 chained data () 함수 이해

알렉산더 솔로 닉

간단하고 가벼운 캐 러셀 플러그인 인 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은 여전히 ​​슬라이드합니다.

감사합니다.

알렉산더.

Adenet

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

자바 스크립트의 promise / chained 함수와 약간 혼동

분류에서Dev

Data.List.Extra 라이브러리의 groupSort 및 groupOn 함수 이해

분류에서Dev

Haskell의 함수-이해

분류에서Dev

C의 fgets () 함수 이해

분류에서Dev

jQuery의 not () 함수 이해

분류에서Dev

matlab의 fastaread 함수 이해

분류에서Dev

Moq의 Setup () 함수 이해

분류에서Dev

lm ()을 위해 함수의 변수를 data.table에 전달

분류에서Dev

jquery 업그레이드 이후 .data ()로 함수 내부의 JS 변수 액세스가 불가능합니다.

분류에서Dev

재귀 함수의 정의 이해

분류에서Dev

Paypal Chained Payments- "입력 한 로그인 정보는이 거래의 수신자에게 속합니다."

분류에서Dev

Internet Explorer의 위치 지정과 관련된 Unslider 문제

분류에서Dev

Go의 exec.Output () 함수 이해

분류에서Dev

Rust의 함수 반환 유형 이해

분류에서Dev

Jquery 플러그인의 함수 이해

분류에서Dev

PHP의 고차 함수 이해

분류에서Dev

함수 정의 이해하기

분류에서Dev

reduce () 함수의 작동 방식 이해

분류에서Dev

함수의 포인터 이해

분류에서Dev

c의 함수 포인터-이해

분류에서Dev

함수 호출의 Python 이해 (PEP 448)

분류에서Dev

집계 함수의 Null 이해

분류에서Dev

Python의 생성기 함수 이해

분류에서Dev

멤버 함수의 상수 인수가이 함수에 의해 변경됨

분류에서Dev

data.table의 열 (이름 및 값)을 함수에 전달

분류에서Dev

재귀 함수의 Erlang 목록 이해 생성기 이해

분류에서Dev

함수로서의 sympy 해결 함수

분류에서Dev

함수 정의를 이해할 수 없습니다 ( '='인수)

분류에서Dev

이해할 수없는 함수 구문의 차이