2013-01-21 4 views
2

jQuery 연결에서 사용하기 위해 $.noop과 같은 (아마도 문서화되지 않은) 자리 표시 자이 있습니까? JQuery와 코어에jquery 체인을 보존하기위한 빈 함수

$.fn.noop = function(){ return this; }; 

하지만 어쩌면 이미 거기에 이러한 기능 :

$('selector')[true ? 'method' : '<function that does nothing>']().doSomething(); 

나는이와 많이 시도하고 결국했습니다

는 다음과 같이 뭔가를 사용하려면?

+0

@OlafDietsche 선택기가 아닌 창을 참조하십시오. – yckart

+0

'.filter ("*")'는 어떨까요? –

+1

@yckart 그런 기능이 없다고 생각합니다. –

답변

1

옵션 1 :

$.fn.splice을 사용하십시오. 거기에 항상 존재하지만 문서화되지 않았기 때문에 (미래에는 존재하지 않을 수도 있습니다) 읽을 수 없으며 아무런 논쟁도 필요 없습니다.

옵션 2 :

$.fn.noop = function(){return this}. 믿을 수 있고, 예측 가능하며, 빠릅니다. # 1을 선호하는 유일한 이유는 개발 시간입니다.

옵션 3 (선호) : the Iff plugin by Ben Alman과 같이 연결 가능한 no-op를 원하는 유일한 이유 인 조건부에 대한 플러그인을 사용하십시오 (또는 직접 작성하십시오).

프로 :이다

... .iff(condition).method().end() ... 

, 그것은 # 2보다 읽기, 그리고 하나의 호출로 제한하지 않는 :에

... [condition?'method':'noop']() ... 

집니다. iff 내에서 이동하거나 스택을 제대로 풀면 조건을 중첩 할 수 있습니다.

단점 : 플러그인이므로 패치를 가져와야합니다. 빈 콜렉션에서 작업 할 때 no-ops라고하는 메서드가 필요합니다. 모든 표준 jQuery 함수 (add 제외)는 다음과 같습니다.

관련 문제