は、私には、例えば、XUI用のプラグインを作成しました:XUI JSフレームワークプラグインでパブリックメソッドを公開していますか?
xui.extend({
myPlugin : function(){
var options = [];
function methodOne(obj){
}
function methodTwo(){
}
}
});
をそして今、私が呼び出すことができます。
<script type="text/javascript">
xui.ready(function(){
// call my plugin on an XUI object
x$('element').myPlugin();
});
</script>
しかし、私はまた、プラグイン内のメソッドの一部にアクセスできるようにする必要がありますXUI mobiはでもう少し経験を持つ、このような何か(このコードは動作しませんが、私は達成することができるようにしようとしているものを示している)
<script type="text/javascript">
xui.ready(function(){
// call my plugin on an XUI object
x$('element').myPlugin();
var foo = bar;
// call one of my methods?
xui.fn.myPlugin.methodOne(foo);
});
</script>
でした誰もleフレームワークは手を貸す?乾杯
EDIT **
以下の作品、それはおそらく非常にエレガントではないですが...
xui.extend({
myPlugin : function(){
// create an API object
var api = {
'publicOne' : function(obj){
return methodOne(obj)
}
};
// add our API object to prototype
xui.fn.myPlugin.api = api;
/**
* the functions of the plugin
**/
// we'll expose this in the API object
function methodOne(obj){
// Do something with obj...
}
function methodTwo(){
}
}
});
そしてページに私はこれを使用することができます。
<script type="text/javascript">
xui.ready(function(){
// call my plugin on an XUI object, which does its thing
x$('element').myPlugin();
// arbitary
var foo = x$('#bar');
// call one of the methods statically
xui.fn.myPlugin.api.pluginOne(foo);
});
</script>
目的を説明するために、私はJQTouchと非常によく似たものを作っていますが、メガjQueryとXUIのすぐ上に座って。私はページの遷移を処理するページナビゲーションを処理するメソッドを持っていますが、プログラムでもメソッドをトリガできる必要があります。
これは他のXUIの人々に役立つかもしれませんが、それは現在私のために働いていますが、おそらく改善できるでしょうか?
実際、muメソッドのいくつかはコールバックを追加する必要がありますが、私は説明の中で役に立つほど役に立ちませんでした...プラグイン内のいくつかのメソッドを静的に呼び出すことができる必要があります。オブジェクト上ではありません。私は答えを編集しますが、それはエレガントではありませんが、道を見つけたかもしれません。 –
xui.extendの外にmyPlugin関数を記述し、それをxui.extend(myPlugin)に渡すことができます。このように、あなたはそれを単独で使用することができますし、プラグインとしては、なぜプラグインの外でそれにアクセスする必要があるのか理解できません。 –
私のオリジナルの質問を編集しましたが、あなたの提案は意味のあるものになります! –