15
내 목표는 내 JQuery 플러그인 안에있는 함수를 호출 할 수 있다는 것입니다.JQuery 플러그인 내부에 중첩 된 함수를 호출하는 방법은 무엇입니까?
올바른 구문은 무엇입니까?
예를 들어,이 작동하지 않습니다
<a href="#" id="click_me">Click Me</a>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
(function($) {
$.fn.foo = function(options) {
do_stuff = function(){
console.log("hello world!"); // works
do_other_stuff = function(){
alert("who are you?");
}
} // function
} // function
})(jQuery);
$("body").foo();
$("#click_me").click(function(){
$.fn.foo.do_stuff.do_other_stuff(); // doesn't work
});
</script>
를 사용하여 호출
아마도 더 이상적인 솔루션은 각각의 기능과 같이 중첩 된 기능을 포함하는 객체를 반환해야하는 것 나는 이것이 왜 효과가 있는지 얻지 못한다. 나는 $ .fn.foo가 do_stuff라는 속성을 가진 함수 또는 객체가 될 수 있다고 생각했지만, 예제에서는 두 가지 모두 다. 이것은 JavaScript에서 가능합니까? 이 기능에 대해 읽을 수있는 포인터를 주시겠습니까? 아니면 내가 여기 뭔가 잘못 됐어? –
예를 들어 주셔서 감사합니다. 플러그인이 이미 완료되었습니다. 귀하의 예가 내 플러그인의 구조와 일치하지 않습니다. 내 플러그인에서 "do_stuff"는 "foo"안에 있고 "do_other_stuff"는 "do_stuff"안에 있습니다. 중첩 된 구조를 사용하여 "다른 것들을 수행"에 어떻게 액세스 할 수 있습니까? 아니면, 어떻게 당신의 예제를 사용할 수 있지만 do_stuff는 foo에서 변수에 접근하게한다. (그리고 do_other_stuff는 do_stuff의 변수에 접근하게한다)? – edt
감사합니다. Cobbal, 내 함수 구조로 예제를 사용하는 방법을 알아 냈습니다. 위대한 작품! 나는 레벨에 관계없이 모든 중첩 함수에 대해 $ .fn.foo. [function_name]을 사용해야했습니다. – edt