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