2010-05-10 2 views
1

jquery 갤러리를 개발 중이며 어떤 종류의 라이트 박스 (예 : fancybox)를 지원하도록 형광펜 함수를 매개 변수화하고 싶습니다. 내 기본 설정에서 내가 같은 한 : 항목을 생성, 코드에 너무요소에 fancybox/lightbox/idontknowbox 함수를 연결하십시오.

$.fn.mygallery.defaults = { 
    functionHighlighter: null 
} 

를,이 속성을 확인 것이고,이 함수에 걸렸고 않다면, 나는 요소를 호출 할 :

if ((typeof opt.functionHighlighter) === "function") { 
    opt.functionHighlighter.call(link); 
} 

여기서 link는 축소 이미지가 포함 된 앵커 요소이며 href는 원본 이미지로 설정됩니다. 내 생각에, 플러그인을 호출 할 때, 나는으로 기능을 설정 :

$("#gallery").mygallery({ functionHighlighter: $.fancybox }); 

하지만 functionHighlighter 직접 빈 영역을 반환 fancybox을 실행에 "전화". 내가 에뮬레이트 할 올바르게 링크 플러그인을 구축

link.fancybox(); 

의 실행이다. 아이디어가 있으십니까?

답변

0

당신은 옵션으로 다음을 설정해야합니다

예, 이미 디폴트의 확장있다
jQuery.fn.pluginName = function (options) { 

var defaults = { 

    fancyObject: '', 

    fancyPlugin: '', 

    fancy: '' 
}; 

var settings = $.extend({}, defaults, options); 

return this.each(function() { 

    //plugin code 

    if (options.fancy){ 
     $.options.fancyPlugin(options.fancyObject); 
    } 


}); 

}; 

$(selector).pluginName({fancy:true, fancyPlugin: 'fancybox', fancyObject: $(selector)}); 
+0

가, 난 그냥 간결함을 위해 생략. 내 플러그인의 핵심으로 올바르게 $ .fancybox로 functionHighlighter를 검색 할 수 있습니다. 내 문제는 functionHighlighter 참조를 사용하여 개체에 적용하는 방법을 모르겠다는 것입니다. – tanathos

+0

업데이트 됨. 아마 이것처럼? – XGreen

+0

내 플러그인 코드에서 하이 라이터로 사용되는 함수가 fancybox 또는 다른 플러그인 (라이트 박스와 같은)인지 여부를 알 수 없기 때문에 $ .fancybox()와 같은 호출을 할 수 없습니다. 나는 전화를 일반화해야한다. – tanathos

관련 문제