2010-04-01 6 views
1

선택기를 매개 변수로 사용할 수있는 간단한 jquery 플러그인을 작성하려고합니다. 모든 예제는 실제 셀렉터보다 더 원시적 인 '속성'(너비, 색 등)을 기대합니다. 이 작업을 수행하는 좋은 방법이 있습니까? jQuery, 선택기를 옵션 매개 변수로 전달

나는이 문서 발견 Passing jquery selector to sub-function within a plugin

을하지만 난 여전히 상대적으로 혼란 스러워요.

목표는

 (function ($) { 
      $.fn.demonstration = function (options) { 

       var defaults = { 
        $selector: null 
       }; 
       var options = $.extend(defaults, options); 

       return this.each(function() { 
        alert($selector.attr('id')); 
       }); 
      }; 
     })(jQuery); 

     $('body').demonstration({ $selector: $('#canvas') }); 
+0

내가 한 것은 $ selector의 시작 부분에서 skanky $를 제거했지만 (아래 내 의견을 참조하십시오 : P) 기본 $ selector 값을 $로 설정했을 것입니다.)가 아닌 null입니다. – Matt

답변

4

셀렉터는 문자열에 지나지 않는다 ... 종류의이 같은입니다. jQuery() ($) 호출에 대한 액세스를 래핑하는 한, 사람들은 거의 모든 것을 전달할 수 있습니다 (선택기 문자열, jQuery 객체, DOM 요소 등)

편집 : 코드를 추가했습니다. 이 경우에는 $(options.$selector).attr('id')에 액세스해야합니다.

호기심 때문에 왜 $ before 선택기가 좋을까요?

+0

그게 내가 사용하는 다른 모든 사람들을 보는 이유이기 때문이다. 왜 그들이 그것을 사용하는지 모르겠다. 나는 자바 스크립트를 늦추고 아직도 그것을 배우고있다. – Ciel

+0

@Stacey & Matti : 어떤 사람들은 변수를 사용하여 jQuery 객체를 보유하고 있음을 나타냅니다. 나는 그것을 개인적으로 싫어 : P – Matt

+0

좋아, 나는 질문이있다. 한 번에 두 개의 값을 전달할 수 있습니까? 그러한 $ ('body') 데모 ('선택자', '다른 것'). 내 목표는 단 하나의 선택자를 넘는 것입니다. 어떤 아이디어? – Ciel

관련 문제