gpt4 book ai didi

javascript - 在 XUI JS 框架插件中公开公共(public)方法?

转载 作者:行者123 更新时间:2023-11-28 10:13:35 26 4
gpt4 key购买 nike

我为 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 人员有所帮助,它目前对我有用,但也许可以改进?

最佳答案

Liam 更有用的可能是了解您想要这样做的原因?您始终可以通过回调公开该函数。

xui.extend({
myPlugin : function(callback){

var options = [];

function methodOne(obj){

}

function methodTwo(){

}

if(typeof callback === 'function') {
return callback(this);
}
}
});

然后这样调用它:

<script type="text/javascript">
xui.ready(function(){

// call my plugin on an XUI object
x$('element').myPlugin(function(myPublic) {
var foo = bar;

// call one of my methods?
myPublic.methodOne(foo);
});
});
</script>

这未经测试,但应该可以工作。

关于javascript - 在 XUI JS 框架插件中公开公共(public)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7040787/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com