我为 XUI 创建了一个插件,例如:
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>
但我还需要能够访问插件中的一些方法,就像这样(这段代码不起作用,但说明了我想要实现的目标)
<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>
任何对 XUI 移动框架有更多经验的人都可以帮忙吗?干杯
编辑 **
下面的作品,虽然它可能不是很优雅......
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 人,它目前对我有用,但也许可以改进?