jQuery 플러그인을 만들려고합니다.결과에서 함수로 jquery 플러그인 만들기
$.fn.examplePlugin = function(callback) {
$.item = $(this);
$(this).hide('fast',function() {
callback('bla');
});
function show(a) {
alert(a);
}
}
및 편집 후
jQuery 플러그인을 만들려고합니다.결과에서 함수로 jquery 플러그인 만들기
$.fn.examplePlugin = function(callback) {
$.item = $(this);
$(this).hide('fast',function() {
callback('bla');
});
function show(a) {
alert(a);
}
}
및 편집 후
을 경고 '즐'를 반환하는
$('form').examplePlugin(function(data)) {
this.show(data); // need to return alert 'bla'
});
필요를 사용, 코드 거의 당신이 할 무슨 뜻한다. 몇 가지 문제가 있습니다 :
이 줄의 목적은 무엇입니까?
$.item = $(this);
당신은 요소를 참조하는 jQuery 오브젝트 (별칭 $
)의 필드를 작성하고 있습니다. 플러그인을 N 번 호출하면 해당 필드가 N 번 겹쳐 쓰여집니다. 성취하고자하는 것은 무엇이든, 이것은 그것을하는 방법이 아닙니다.
show
함수는 function(callback) { ... }
클로저 안에서만 사용할 수 있습니다. 외부에서 액세스 할 수 없습니다. this.show
을 호출하면 아무 작업도 수행되지 않으며 DOM 요소를 참조하기 때문에 this
에 회원을 추가하지 마십시오.
"적절한"방법은 플러그인 저작물에 대한 자습서를 읽는 것이 좋지만 빠른 해결 방법은 show
함수를 콜백 인수로 전달하는 것입니다.
$(this).hide('fast',function() {
callback(show, 'bla');
});
...
$('form').examplePlugin(function(show, data) {
show(data); // will perform (not return) "alert('bla')"
});
typo :'function (show, data)) {'는'function (show, data) {'여야합니다. –
이 코드를 어떻게 생각하십니까'$ .item = $ (이)'합니까? 왜냐하면 그것은 정말 나쁜 아이디어 *이기 때문입니다. 그 점에 대해서, 당신이'숨기기 '에 전달한 콜백의 반환 값이 무엇 때문에 사용되는 이유는 무엇이라고 생각합니까? [jQuery API documentation] (http://api.jquery.com)을 읽었습니까? jQuery가 콜백의 반환 값에 대해 아무런 언급을하지 않는다는 것은 확실합니다. 예제 사용에서 플러그인으로 전달하는 함수를 트리거하는 데 아무 것도하지 않았습니다. 뒤로 물러나서 API를 읽고 플러그 - 인 자습서와 소스 코드를 읽고 다시 시도해 보는 것이 좋습니다. –