제이쿼리 플러그인 만들때 제이쿼리 ajax의 success 처럼 플러그인 내부에서 결과를 리턴 받아야 하는 경우가 있습니다.

이럴때 콜백함수를 사용하여 플러그인 동작을 명령한 위치로 값을 리턴 할수 있습니다.


예제는 다음과 같습니다.





$(document).ex({

option : 'a',

success : function(result){

alert(result);

}

});


1. 위와 같이 ex라는 플러그인을 동작 시켰다고 가정합니다. 

success 객체의 함수 인자 result 로 플러그인으로 부터 어떠한 값을 리턴 받는게 목적 입니다.






(function($){

var ele;


$.fn.ex = function(option){


ele = $(this);

if(option.success){

compleate(option.option,option.success);

}


function compleate(result,callback){

callback(result);

}


}

})(jQuery);



2. ex 플러그인 입니다. 1에서 option 객체에 넣은 입력 값을 1의 result로 보내주는 역할을 하는 간단한 플러그인 입니다.

compleate라는 함수를 만들어 인자로 옵션의 값과 success의 함수를 그대로 보내게 됩니다.

이후 compleate 함수 내에서는 callback(success에 입렵한 함수)에 result(값 a)를 넣어 실행 하게 됩니다.






3. 1과 2가 정상적이라면 1에서 alert(result)가 정상 동작 하게 됩니다.















+ Recent posts