현재 내가뿐만 아니라 그것은 $.pluginname
또는 $(elm).pluginname
통해 호출되었는지 확인 if (typeof(this) == 'function')
을 확인 자체를 $.fn
에서 그 기능을 설정뿐만 아니라 $
JQuery와 플러그인이 ...이 나쁜 관행이며, 만약 그렇다면, 거기에있다 요소를 선택적으로 제공하는 더 좋은 방법은 무엇입니까?함수를 jQuery 객체에 연결하는 것이 좋지 않습니까?
답변
JQuery와 확장 기능은 모두 네임 스페이스에 노출이 나를 이끌 것
$.extend = $.fn.extend = ...
이 작업을 수행 할 수 있도록하기위한 그들이 의도 믿고 :
JQuery와 소스로 모두 정의합니다. 그러나 jQuery 작성자가 두 함수를 모두 사용하도록 자체 함수를 설정 한 방법을 살펴 본다면 모범 사례를 더 잘 이해할 수 있습니다.
예를 들어 일반적으로 $ .fn 함수가 $ 함수를 호출해야합니다.
$.fn.extend({
data: function(key, value){
return this.each(function(){
$.data(this, key, value);
};
}
});
이 방법은, 하나는 다른를 호출하고 확인을 담당하는 버전 :
$.extend({
data: function(elem, key, value) {...}
});
과 (약간 단순화) (많은 jQuery를 소스에서 $ .DATA 기능 등) 당신이 원한다면 $ namespace에서 정의되지 않은 'elem'매개 변수를 검사 할 수 있습니다.
사실, $ .pluginname을 jQuery 객체에 연결하지 않고 호출하려고 시도했을 때 Firebug는 그것이 함수가 아니라고 말했습니다. – unrelativity
위에서 설명한 것처럼 jQuery 객체에 특별히 첨부해야하고 $ namespace의 각 요소를 바로 가기로 사용하는 $ .fn 네임 스페이스에 플러그인을 작성해야합니다. jQuery.staticPlugin = 함수 (ELEM 옵션) {} 및 jQuery.fn.plugin = 기능 (옵션) {this.each 리턴 (함수() {$ .staticPlugin (이 옵션);}) ; }; –
현재 가지고있는 것은 $ .fn.pluginname = function() {/ * * /}이고 그 뒤에 $ .pluginname = $ .fn.pluginname – unrelativity
jquery authoring 문서를 읽었습니까? 예제의 log 함수는 개발자를 위해 jquery 객체에 함수를 추가하는 표준 방법으로 간주됩니다.
그래서 그것은 나쁜 관행이 아니며 실제로 많은 플러그인 작성자가 수행하는 것입니까? – unrelativity
예. 이것이 플러그인이 구축되는 방법입니다. –
하, 내가 그걸 알아 차리지 못한 것 같아. 어리석은 나는> _ < – unrelativity
- 1. MediaScannerConnection.scanFile을 사용하는 것이 좋지 않습니까?
- 2. 긴 jQuery 체인이 좋지 않습니까?
- 3. 왜 JSON을 XML에 포함시키는 것이 좋지 않습니까?
- 4. 배열에서 변수를 추출하는 것이 성능에 좋지 않습니까?
- 5. 마법의 변수를 갖는 것이 좋지 않습니까?
- 6. 데이터베이스에 XML을 저장하는 것이 "좋지"않습니까?
- 7. 은 모델에 has_and_belongs_to_many를 사용하는 것이 좋지 않습니까?
- 8. 모든보기가 하나의보기 컨트롤러에 연결되는 것이 좋지 않습니까?
- 9. 화면 스크레이퍼의 페이지를 캐시하는 것이 좋지 않습니까?
- 10. 개체의 "이름"을지도에 포함시키는 것이 좋지 않습니까?
- 11. 왜 전역이 좋지 않습니까?
- 12. 페이지에 jQuery를 여러 번 추가하는 것이 좋지 않습니까?
- 13. HTMLHelper에서 Javascript 코드 및 HTML 태그를 생성하는 것이 좋지 않습니까?
- 14. JavaScript에서 대괄호 표기법을 사용하여 객체에 함수를 연결하는 방법은 무엇입니까?
- 15. 네임 스페이스간에 함수를 오버로드하는 것이 어렵지 않습니까?
- 16. 왜 #define이 좋지 않습니까?
- 17. 중간 파일이 좋지 않습니까?
- 18. 웹 사용자 컨트롤을 상태 시스템으로 모델링하는 것이 좋지 않습니까?
- 19. MySQL 쿼리를 PHP 루프에 넣는 것이 좋지 않습니까?
- 20. 서버에서 자바 스크립트 코드를 자동으로 생성하는 것이 좋지 않습니까?
- 21. PHP : 객체를 직렬화하고 나중에 데이터베이스에 저장하는 것이 좋지 않습니까?
- 22. 도메인 모델 클래스에 의미없는 키가있는 것이 좋지 않습니까?
- 23. 데이터베이스 디자인에서 사용자 이름을 기본 키로 사용하는 것이 좋지 않습니까?
- 24. 하나의 다른 클래스에 의해서만 사용되는 클래스를 갖게하는 것이 좋지 않습니까?
- 25. .NET에서 흐름 제어를 위해 try-catch를 사용하는 것이 "좋지"않습니까?
- 26. 큰 테이블의 구조를 변경하는 것이 얼마나 좋지 않습니까?
- 27. iframe 안에 로그인 대화 상자가있는 것이 좋지 않습니까?
- 28. 평가자를 3 진 표현으로 통합하는 것이 좋지 않습니까? (C#)
- 29. 중첩 된 Try..catch 블록을 사용하는 것이 좋지 않습니까?
- 30. codeigniter의 뷰에서 직접 모델을 사용하는 것이 좋지 않습니까?
플러그인의 목적은 무엇이며 왜 jQuery 객체에 정적 메소드를 추가해야합니까? –
요소를 선택적으로 전달하려고합니다. – unrelativity